Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moving from V12 to V13 gives significant new compiler warnings Wregister with C++17 #431

Open
sticilface opened this issue Jul 29, 2024 · 3 comments

Comments

@sticilface
Copy link
Contributor

I've moved to V13 and I now get a large number of complier warnings (See below), when using C++17 on platformio.
The errors do not occur with C++11, or in the Arduino IDE.
nonetheless it would be good to fix if possible to keep compatibility moving forward.
The arduinoIDE is still using C++11.

                 from .pio/libdeps/mega_C_RELAY/PJON/src/interfaces/PJON_Interfaces.h:4,
                 from .pio/libdeps/mega_C_RELAY/PJON/src/PJON.h:61,
                 from .pio/libdeps/mega_C_RELAY/PJON/src/PJONSoftwareBitBang.h:4,
                 from src/mega_C_RELAY/main.cpp:2:
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function 'bool SoftwareBitBang::can_start()':
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:71:7: note: in expansion of macro 'PJON_IO_MODE'
       PJON_IO_MODE(_input_pin, INPUT);
       ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function 'uint16_t SoftwareBitBang::receive_response()':
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:151:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(_output_pin, LOW);
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:155:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(_input_pin, LOW);
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:158:11: note: in expansion of macro 'PJON_IO_MODE'
           PJON_IO_MODE(_output_pin, OUTPUT);
           ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:159:11: note: in expansion of macro 'PJON_IO_WRITE'
           PJON_IO_WRITE(_output_pin, HIGH);
           ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:312:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(P, LOW); \
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:161:11: note: in expansion of macro 'PJON_IO_PULL_DOWN'
           PJON_IO_PULL_DOWN(_output_pin);
           ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:313:9: note: in expansion of macro 'PJON_IO_MODE'
         PJON_IO_MODE(P, INPUT); \
         ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:161:11: note: in expansion of macro 'PJON_IO_PULL_DOWN'
           PJON_IO_PULL_DOWN(_output_pin);
           ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function 'void SoftwareBitBang::send_byte(uint8_t)':
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:211:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(_output_pin, b & mask);
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function 'void SoftwareBitBang::send_response(uint8_t)':
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:312:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(P, LOW); \
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:224:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(_input_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:313:9: note: in expansion of macro 'PJON_IO_MODE'
         PJON_IO_MODE(P, INPUT); \
         ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:224:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(_input_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:235:7: note: in expansion of macro 'PJON_IO_MODE'
       PJON_IO_MODE(_output_pin, OUTPUT);
       ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:312:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(P, LOW); \
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:238:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(_output_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:313:9: note: in expansion of macro 'PJON_IO_MODE'
         PJON_IO_MODE(P, INPUT); \
         ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:238:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(_output_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function 'void SoftwareBitBang::send_frame(uint8_t*, uint16_t)':
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:257:7: note: in expansion of macro 'PJON_IO_MODE'
       PJON_IO_MODE(_output_pin, OUTPUT);
       ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:312:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(P, LOW); \
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:261:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(_output_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:313:9: note: in expansion of macro 'PJON_IO_MODE'
         PJON_IO_MODE(P, INPUT); \
         ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:261:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(_output_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function 'bool SoftwareBitBang::sync(uint32_t)':
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:312:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(P, LOW); \
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:283:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(_input_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:313:9: note: in expansion of macro 'PJON_IO_MODE'
         PJON_IO_MODE(P, INPUT); \
         ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:283:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(_input_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:312:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(P, LOW); \
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:285:9: note: in expansion of macro 'PJON_IO_PULL_DOWN'
         PJON_IO_PULL_DOWN(_output_pin);
         ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:313:9: note: in expansion of macro 'PJON_IO_MODE'
         PJON_IO_MODE(P, INPUT); \
         ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:285:9: note: in expansion of macro 'PJON_IO_PULL_DOWN'
         PJON_IO_PULL_DOWN(_output_pin);
         ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function 'void SoftwareBitBang::pulse(uint8_t)':
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:326:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(_output_pin, HIGH);
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:328:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(_output_pin, LOW);
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function 'void SoftwareBitBang::set_pin(uint8_t)':
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:312:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(P, LOW); \
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:336:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:313:9: note: in expansion of macro 'PJON_IO_MODE'
         PJON_IO_MODE(P, INPUT); \
         ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:336:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function 'void SoftwareBitBang::set_pins(uint8_t, uint8_t)':
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:312:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(P, LOW); \
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:348:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(input_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:313:9: note: in expansion of macro 'PJON_IO_MODE'
         PJON_IO_MODE(P, INPUT); \
         ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:348:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(input_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:288:11: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
           PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_PORT_REG(P), P, V) \
           ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:312:9: note: in expansion of macro 'PJON_IO_WRITE'
         PJON_IO_WRITE(P, LOW); \
         ^~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:349:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(output_pin);
       ^~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:277:24: warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]
       uint8_t register saveSreg = SREG; \
                        ^
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:297:9: note: in expansion of macro 'PJON_IO_ATOMIC_WRITE'
         PJON_IO_ATOMIC_WRITE((uint8_t*) PJON_IO_PIN_TO_DDR_REG(P), P, V) \
         ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/interfaces/ARDUINO/PJON_IO.h:313:9: note: in expansion of macro 'PJON_IO_MODE'
         PJON_IO_MODE(P, INPUT); \
         ^~~~~~~~~~~~
.pio/libdeps/mega_C_RELAY/PJON/src/strategies/SoftwareBitBang/SoftwareBitBang.h:349:7: note: in expansion of macro 'PJON_IO_PULL_DOWN'
       PJON_IO_PULL_DOWN(output_pin);
       ^~~~~~~~~~~~~~~~~

Mainly appears to be the following:

warning: ISO C++1z does not allow 'register' storage class specifier [-Wregister]

I am unfamiliar with this type, or how it might be resolved.

This occurs using platformio, whereas it does not occur on ArduinoIDE

FQBN: arduino:avr:uno
Using board 'uno' from platform in folder: /Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6
Using core 'arduino' from platform in folder: /Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6

Detecting libraries used...
/Users/amelvin/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/standard /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/sketch/Device1.ino.cpp -o /dev/null
Alternatives for PJONSoftwareBitBang.h: [[email protected]]
ResolveLibrary(PJONSoftwareBitBang.h)
  -> candidates: [[email protected]]
/Users/amelvin/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/standard -I/Users/amelvin/Documents/Arduino/libraries/PJON/src /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/sketch/Device1.ino.cpp -o /dev/null
Using cached library dependencies for file: /Users/amelvin/Documents/Arduino/libraries/PJON/src/interfaces/WINX86/Serial/Serial.cpp
Generating function prototypes...
/Users/amelvin/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/standard -I/Users/amelvin/Documents/Arduino/libraries/PJON/src /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/sketch/Device1.ino.cpp -o /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/484919799/sketch_merged.cpp
/Users/amelvin/Library/Arduino15/packages/builtin/tools/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/484919799/sketch_merged.cpp
Compiling sketch...
/Users/amelvin/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/amelvin/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/standard -I/Users/amelvin/Documents/Arduino/libraries/PJON/src /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/sketch/Device1.ino.cpp -o /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/sketch/Device1.ino.cpp.o
Compiling libraries...
Compiling library "PJON"
Using previously compiled file: /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/libraries/PJON/interfaces/WINX86/Serial/Serial.cpp.o
Compiling core...
Using precompiled core: /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/cores/arduino_avr_uno_2d82df124a1adeca49b57028cba6c4f0/core.a
Linking everything together...
/Users/amelvin/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-gcc -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/Device1.ino.elf /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/sketch/Device1.ino.cpp.o /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/libraries/PJON/interfaces/WINX86/Serial/Serial.cpp.o /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/../../cores/arduino_avr_uno_2d82df124a1adeca49b57028cba6c4f0/core.a -L/private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86 -lm
/Users/amelvin/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/Device1.ino.elf /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/Device1.ino.eep
/Users/amelvin/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy -O ihex -R .eeprom /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/Device1.ino.elf /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/Device1.ino.hex

Using library PJON at version 13.1 in folder: /Users/amelvin/Documents/Arduino/libraries/PJON 
/Users/amelvin/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-size -A /private/var/folders/nv/8j3v5v0s18v7p4249kv8qbz80000gq/T/arduino/sketches/B0B6BC7686C0908AFE1F65B0201F3C86/Device1.ino.elf
Sketch uses 7034 bytes (21%) of program storage space. Maximum is 32256 bytes.
Global variables use 776 bytes (37%) of dynamic memory, leaving 1272 bytes for local variables. Maximum is 2048 bytes.
@gioblu
Copy link
Owner

gioblu commented Sep 5, 2024

Ciao @sticilface I think the problem may be fixed removing register keyword from here:

uint8_t register saveSreg = SREG; \

Although, I am not sure why that keyword was there for :)

Can you give a try to this fix?

@sticilface
Copy link
Contributor Author

That does appear to fix the problem. Thank you. Should have found that myself... really...

@fredilarsen
Copy link
Contributor

fredilarsen commented Sep 6, 2024

The register keyword is a hint to the compiler, advising it to store that variable in a processor register instead of memory. It could speed up the generated code, and is used in speed-critical places, but it seems now to be deprecated. I am not sure if modern processor architectures are the reason for this, or if the compiler now determines when to use processor registers automatically.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants