Skip to content

Missing #undef #11

@sylque

Description

@sylque

When compiling this sketch on Arduino Nano 33 BLE...

#include "ArduinoEigen.h"

void setup() {}

void loop() {}

...I get the following errors:

In file included from C:\Users\Sylvain\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76:0,
                 from .pio\libdeps\nano33ble\ArduinoEigen/ArduinoEigen.h:5,
                 from src\main.cpp:1:
.pio\libdeps\nano33ble\ArduinoEigen/ArduinoEigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h: In member function 'void Eigen::internal::lhs_process_one_packet<nr, LhsProgress, RhsProgress, LhsScalar, RhsScalar, ResScalar, AccPacket, LhsPacket, RhsPacket, ResPacket, GEBPTraits, LinearMapper, DataMapper>::operator()(const DataMapper&, const LhsScalar*, const RhsScalar*, ResScalar, Eigen::Index, Eigen::Index, Eigen::Index, Eigen::Index, Eigen::Index, Eigen::Index, int, Eigen::Index, Eigen::Index, Eigen::Index, Eigen::Index, Eigen::Index)':
C:\Users\Sylvain\.platformio\packages\framework-arduino-mbed\variants\ARDUINO_NANO33BLE/pins_arduino.h:83:16: error: lvalue required as unary '&' operand
 #define D0  (0u)
                ^
.pio\libdeps\nano33ble\ArduinoEigen/ArduinoEigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h:1270:73: note: in expansion of macro 'D0'
           peeled_kc_onestep(1, blA, blB, traits, &A1, &rhs_panel, &T0, &D0, &D1, &D2, &D3);
                                                                         ^~
C:\Users\Sylvain\.platformio\packages\framework-arduino-mbed\variants\ARDUINO_NANO33BLE/pins_arduino.h:84:16: error: lvalue required as unary '&' operand
 #define D1  (1u)
                ^
.pio\libdeps\nano33ble\ArduinoEigen/ArduinoEigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h:1270:78: note: in expansion of macro 'D1'
           peeled_kc_onestep(1, blA, blB, traits, &A1, &rhs_panel, &T0, &D0, &D1, &D2, &D3);
                                                                              ^~
C:\Users\Sylvain\.platformio\packages\framework-arduino-mbed\variants\ARDUINO_NANO33BLE/pins_arduino.h:85:16: error: lvalue required as unary '&' operand
 #define D2  (2u)
                ^
.pio\libdeps\nano33ble\ArduinoEigen/ArduinoEigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h:1270:83: note: in expansion of macro 'D2'
           peeled_kc_onestep(1, blA, blB, traits, &A1, &rhs_panel, &T0, &D0, &D1, &D2, &D3);
                                                                                   ^~
C:\Users\Sylvain\.platformio\packages\framework-arduino-mbed\variants\ARDUINO_NANO33BLE/pins_arduino.h:86:16: error: lvalue required as unary '&' operand
 #define D3  (3u)
                ^
.pio\libdeps\nano33ble\ArduinoEigen/ArduinoEigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h:1270:88: note: in expansion of macro 'D3'

So I guess ArduinoEigen/ArduinoEigenCommon.h should also undef D0, D1, D2, D3.

Additionally, in the past, I am quite sure I saw conflicts with A0 and A1 (I don't remember on which board). So you might want to also undef A0 and A1 to be on the safe side.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions