diff options
author | Mark Kriegsman <1334634+kriegsman@users.noreply.github.com> | 2020-01-29 00:49:44 +0300 |
---|---|---|
committer | Mark Kriegsman <1334634+kriegsman@users.noreply.github.com> | 2020-01-29 00:49:44 +0300 |
commit | b7e967263943a56b246d2c7b81e85d99a1c94322 (patch) | |
tree | 0ef97b58b2f3a26b77fcbf8146fc070d0bff111b | |
parent | 9c5e2ed3515b04ef3506dd19ffd51f37aeeea74c (diff) |
Make switch/case 'fallthrough' explicit, to silence some compiler warnings on AVR
-rw-r--r-- | platforms/avr/clockless_trinket.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/platforms/avr/clockless_trinket.h b/platforms/avr/clockless_trinket.h index 69f33d6a..312e9a88 100644 --- a/platforms/avr/clockless_trinket.h +++ b/platforms/avr/clockless_trinket.h @@ -322,6 +322,9 @@ protected: #define DADVANCE 3 #define DUSE (0xFF - (DADVANCE-1)) +// Silence compiler warnings about switch/case that is explicitly intended to fall through. +#define FL_FALLTHROUGH __attribute__ ((fallthrough)); + // This method is made static to force making register Y available to use for data on AVR - if the method is non-static, then // gcc will use register Y for the this pointer. static void /*__attribute__((optimize("O0")))*/ /*__attribute__ ((always_inline))*/ showRGBInternal(PixelController<RGB_ORDER> & pixels) { @@ -403,9 +406,9 @@ protected: HI1 _D1(1) QLO2(b0, 1) RORSC14(b1,7) _D2(4) LO1 RORCLC2(b1) _D3(2) HI1 _D1(1) QLO2(b0, 0) switch(XTRA0) { - case 4: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) - case 3: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) - case 2: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) + case 4: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) FL_FALLTHROUGH + case 3: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) FL_FALLTHROUGH + case 2: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) FL_FALLTHROUGH case 1: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) } MOV_ADDDE14(b0,b1,d1,e1) _D2(4) LO1 _D3(0) @@ -419,9 +422,9 @@ protected: HI1 _D1(1) QLO2(b0, 1) RORSC24(b1,7) _D2(4) LO1 RORCLC2(b1) _D3(2) HI1 _D1(1) QLO2(b0, 0) switch(XTRA0) { - case 4: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) - case 3: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) - case 2: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) + case 4: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) FL_FALLTHROUGH + case 3: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) FL_FALLTHROUGH + case 2: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) FL_FALLTHROUGH case 1: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) } @@ -438,9 +441,9 @@ protected: HI1 _D1(1) QLO2(b0, 1) RORSC04(b1,7) _D2(4) LO1 RORCLC2(b1) _D3(2) HI1 _D1(1) QLO2(b0, 0) switch(XTRA0) { - case 4: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) - case 3: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) - case 2: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) + case 4: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) FL_FALLTHROUGH + case 3: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) FL_FALLTHROUGH + case 2: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) FL_FALLTHROUGH case 1: _D2(0) LO1 _D3(0) HI1 _D1(1) QLO2(b0,0) } MOV_ADDDE04(b0,b1,d0,e0) _D2(4) LO1 _D3(5) |