/* I expected this to print: 0, 1, 2, default
It doesn't.
GCC used to treat this an error, but 7.3.0 quietly compiles it
and sits back to enjoy watching you try to figure it out.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=7508 */
void setup() {
Serial.begin(115200);
}
void thatsodd(int a) {
switch (a) {
case 0:
int b = a; // comment out this line and it will work
Serial.println(0);
break;
case 1:
Serial.println(1);
break;
case 2:
Serial.println(2);
break;
default:
Serial.println("default");
break;
}
}
void loop() {
Serial.println("Begin");
thatsodd(0);
thatsodd(1);
thatsodd(2);
thatsodd(255);
Serial.println("End");
while (1);
}