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

Cannot compile the example sketch in README.MD #10

Closed
baqwas opened this issue Jan 14, 2023 · 7 comments
Closed

Cannot compile the example sketch in README.MD #10

baqwas opened this issue Jan 14, 2023 · 7 comments

Comments

@baqwas
Copy link

baqwas commented Jan 14, 2023

Cannot compile the example shown in README.MD -> Usage -> Creating the main sketch. Only the first error message of the very long list (naturally perhaps owing to my newbie mistake) is shown below:

from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/noise.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/noise.cpp:2:

Board is Generic ESP8266. Tried other variations but still unsuccessful. What would be the recommended board for a Hello World type of exercise?

@srwi
Copy link
Owner

srwi commented Jan 14, 2023

Are you able to successfully compile a normal FastLED example sketch?

Also the provided output just shows a warning. It would be great if you could show the entire output.

@baqwas
Copy link
Author

baqwas commented Jan 15, 2023

Hello @stnkl,

Thank you very much for stepping up. Granted 99% are error messages. Here is the error message for a Generic ESP8266 Module board. (I dropped the idea of trying to make it work with the LOLIN(WEMOS) D1 R2 board):

/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/lib8tion.cpp:3:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:62:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   62 |  inline void lo(register port_ptr_t port) __attribute__ ((always_inline)) { *port &= ~mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:63:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   63 |  inline void set(register port_t val) __attribute__ ((always_inline)) { *mPort = val; }
      |                                  ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                          ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:64: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                                                ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:228:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  228 |  inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:229:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  229 |  inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:230:41: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  230 |  inline static void set(register port_t val) __attribute__ ((always_inline)) { }
      |                                         ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:49: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                 ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:71: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                                       ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:51,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:22:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:105: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                                         ^~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:30:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   30 |     inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { hi(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:31:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   31 |     inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { lo(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:52: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:74: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                                          ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:102: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                      ^~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:131: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                                                   ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:5,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:111: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                               ^~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:139: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                                                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: In static member function 'static void InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::Lines&, PixelController<RGB_ORDER, LANES, (((1 << ((LANES < 6) ? LANES : 6)) - 1) & 65535)>&)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:77:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   77 |   register uint8_t d = pixels.template getd<PX>(pixels);
      |                    ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:78:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   78 |   register uint8_t scale = pixels.template getscale<PX>(pixels);
      |                    ^~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:80:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   80 |   for(register uint32_t i = 0; i < USED_LANES; ++i) {
      |                         ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:95:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   95 |   for(register uint32_t i = USED_LANES; i < 8; ++i) {
      |                         ^
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:62:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   62 |  inline void lo(register port_ptr_t port) __attribute__ ((always_inline)) { *port &= ~mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:63:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   63 |  inline void set(register port_t val) __attribute__ ((always_inline)) { *mPort = val; }
      |                                  ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                          ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:64: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                                                ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:228:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  228 |  inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:229:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  229 |  inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:230:41: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  230 |  inline static void set(register port_t val) __attribute__ ((always_inline)) { }
      |                                         ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:49: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                 ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:71: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                                       ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:51,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:22:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:105: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                                         ^~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:30:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   30 |     inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { hi(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:31:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   31 |     inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { lo(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:52: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:74: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                                          ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:102: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                      ^~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:131: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                                                   ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:5,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:111: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                               ^~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:139: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                                                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: In static member function 'static void InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::Lines&, PixelController<RGB_ORDER, LANES, (((1 << ((LANES < 6) ? LANES : 6)) - 1) & 65535)>&)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:77:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   77 |   register uint8_t d = pixels.template getd<PX>(pixels);
      |                    ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:78:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   78 |   register uint8_t scale = pixels.template getscale<PX>(pixels);
      |                    ^~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:80:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   80 |   for(register uint32_t i = 0; i < USED_LANES; ++i) {
      |                         ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:95:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   95 |   for(register uint32_t i = USED_LANES; i < 8; ++i) {
      |                         ^
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/bitswap.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Arduino/libraries/FastLED/src/noise.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/noise.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:50,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:61:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   61 |  inline void hi(register port_ptr_t port) __attribute__ ((always_inline)) { *port |= mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:62:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   62 |  inline void lo(register port_ptr_t port) __attribute__ ((always_inline)) { *port &= ~mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:63:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   63 |  inline void set(register port_t val) __attribute__ ((always_inline)) { *mPort = val; }
      |                                  ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                          ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:64: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                                                ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:228:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  228 |  inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:229:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  229 |  inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:230:41: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  230 |  inline static void set(register port_t val) __attribute__ ((always_inline)) { }
      |                                         ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:49: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                 ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:71: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                                       ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:51,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:22:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:105: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                                         ^~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:30:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   30 |     inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { hi(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:31:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   31 |     inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { lo(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:52: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:74: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                                          ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:102: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                      ^~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:131: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                                                   ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:5,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:111: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                               ^~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:139: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                                                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: In static member function 'static void InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::Lines&, PixelController<RGB_ORDER, LANES, (((1 << ((LANES < 6) ? LANES : 6)) - 1) & 65535)>&)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:77:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   77 |   register uint8_t d = pixels.template getd<PX>(pixels);
      |                    ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:78:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   78 |   register uint8_t scale = pixels.template getscale<PX>(pixels);
      |                    ^~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:80:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   80 |   for(register uint32_t i = 0; i < USED_LANES; ++i) {
      |                         ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:95:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   95 |   for(register uint32_t i = USED_LANES; i < 8; ++i) {
      |                         ^
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
In file included from /home/reza/Arduino/libraries/WebSockets/src/libb64/cdecode.c:9:
/home/reza/.arduino15/packages/esp8266/hardware/esp8266/3.1.0/cores/esp8266/core_esp8266_features.h:132:38: error: expected ',' or ';' before 'esp_is_8285'
  132 | bool __attribute__((const, nothrow)) esp_is_8285();
      |                                      ^~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/WebSockets/src/libb64/cencode.c:9:
/home/reza/.arduino15/packages/esp8266/hardware/esp8266/3.1.0/cores/esp8266/core_esp8266_features.h:132:38: error: expected ',' or ';' before 'esp_is_8285'
  132 | bool __attribute__((const, nothrow)) esp_is_8285();
      |                                      ^~~~~~~~~~~

exit status 1

Compilation error: exit status 1

FWIW, the simplest FastLED example compiles with the Generic ESP8266 board but I would like to use your library. I've just started using IDE 2 (at 2.0.3 now). I don't have to use ESP8266 for self-paced learning purposes. Let me know which board you would prefer that I do my first test. Thanks.

Regards.

@baqwas
Copy link
Author

baqwas commented Jan 15, 2023

The output for the compilation of the simplest FastLED example for the same Generic ESP8266 follows below:

In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:50,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:61:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   61 |  inline void hi(register port_ptr_t port) __attribute__ ((always_inline)) { *port |= mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:62:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   62 |  inline void lo(register port_ptr_t port) __attribute__ ((always_inline)) { *port &= ~mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:63:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   63 |  inline void set(register port_t val) __attribute__ ((always_inline)) { *mPort = val; }
      |                                  ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                          ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:64: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                                                ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:228:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  228 |  inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:229:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  229 |  inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:230:41: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  230 |  inline static void set(register port_t val) __attribute__ ((always_inline)) { }
      |                                         ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:49: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                 ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:71: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                                       ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:51,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:22:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:105: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                                         ^~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:30:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   30 |     inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { hi(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:31:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   31 |     inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { lo(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:52: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:74: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                                          ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:102: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                      ^~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:131: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                                                   ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:5,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:111: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                               ^~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:139: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                                                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: In static member function 'static void InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::Lines&, PixelController<RGB_ORDER, LANES, (((1 << ((LANES < 6) ? LANES : 6)) - 1) & 65535)>&)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:77:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   77 |   register uint8_t d = pixels.template getd<PX>(pixels);
      |                    ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:78:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   78 |   register uint8_t scale = pixels.template getscale<PX>(pixels);
      |                    ^~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:80:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   80 |   for(register uint32_t i = 0; i < USED_LANES; ++i) {
      |                         ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:95:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   95 |   for(register uint32_t i = USED_LANES; i < 8; ++i) {
      |                         ^
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/fastspi.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi.h:145:23: note: '#pragma message: No hardware SPI pins defined.  All SPI access will default to bitbanged output'
  145 | #      pragma message "No hardware SPI pins defined.  All SPI access will default to bitbanged output"
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In instantiation of 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>) [with int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85; uint32_t = unsigned int]':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:41:27:   required from 'void ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showPixels(PixelController<RGB_ORDER>&) [with int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85]'
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:38:15:   required from here
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In instantiation of 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t) [with int BITS = 8; int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85; uint32_t = unsigned int]':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:113:27:   required from 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>) [with int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85; uint32_t = unsigned int]'
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:41:27:   required from 'void ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showPixels(PixelController<RGB_ORDER>&) [with int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85]'
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:38:15:   required from here
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
. Variables and constants in RAM (global, static), used 28416 / 80192 bytes (35%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1496     initialized variables
╠══ RODATA   920      constants       
╚══ BSS      26000    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 59151 / 65536 bytes (90%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     26383    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 233828 / 1048576 bytes (22%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     233828   code in flash   

The final message is Done Compiling. I've haven't rigged my setup to transfer the code to the board. The code is:


#include <FastLED.h>

#define NUM_LEDS 100
#define LED_TYPE WS2813
#define DATA_PIN 5

CRGB leds[NUM_LEDS];

void setup()
{
 FastLED.addLeds<LED_TYPE, DATA_PIN>(leds, NUM_LEDS); 
}

void loop()
{
	leds[0] = CRGB::White; FastLED.show(); delay(30);
	leds[0] = CRGB::Black; FastLED.show(); delay(30);
}

Is there a compiler option to suppress warning messages? Thanks.

Regards.

@srwi
Copy link
Owner

srwi commented Jan 15, 2023

Looks like there is two things coming together:

  1. Apparently Arduino is now using C++17 and therefore the register keyword does not exist anymore, leading to those warnings. ISO C++17 does not allow 'register' storage class specifier anymore FastLED/FastLED#1457 Unfortunately I couldn't really find a way to specify the C++ version specifically in my tests.
  2. There seems to be a bug in the ESP8266 platform version 3.1.0 which has supposedly been fixed only a few hours ago in version 3.1.1 (Fix C builds esp8266/Arduino#8795). Looks like it surfaces with arduinoWebSockets, which FastLEDHub is using. Could you try updating to 3.1.1?

Unfortunately I can't reproduce the second error on my machine, even not with platform version 3.2.0 so it is a little hard for me to say what exactly is going wrong.

I don't think it really matters which board you use for testing as it should not fail like this for any of them.

@srwi
Copy link
Owner

srwi commented Jan 15, 2023

For disabling the warning you can add the compiler flag -Wno-register, which will disable this particular warning. Since I don't use the Arduino IDE, I don't know for sure how to set compiler flags there, but it looks like you can change them in the platform.txt file and add the flag to compiler.c.flags.

@baqwas
Copy link
Author

baqwas commented Jan 16, 2023

Hello @stnkl,

Thanks for your understanding. I will do as you have suggested. I will slowly but surely get there to using FastLEDHub.

Apologies again for seeking help through the Issues section when it was a self-inflicted operator user error.

Regards.

@baqwas baqwas closed this as completed Jan 16, 2023
@srwi
Copy link
Owner

srwi commented Jan 16, 2023

No worries. Let me know if you have any other problems!

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

2 participants