Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FastLED/FastLED.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kriegsman <1334634+kriegsman@users.noreply.github.com>2020-01-29 00:49:44 +0300
committerMark Kriegsman <1334634+kriegsman@users.noreply.github.com>2020-01-29 00:49:44 +0300
commitb7e967263943a56b246d2c7b81e85d99a1c94322 (patch)
tree0ef97b58b2f3a26b77fcbf8146fc070d0bff111b
parent9c5e2ed3515b04ef3506dd19ffd51f37aeeea74c (diff)
Make switch/case 'fallthrough' explicit, to silence some compiler warnings on AVR
-rw-r--r--platforms/avr/clockless_trinket.h21
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)