I am using gcc 13.2 on Fedora 38. Consider the following program.
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Enter a number: ");
int num = 0;
scanf("%d", &num);
switch (num)
{
case 1:
int a = num + 3;
printf("The new number is %d.\n", a);
break;
case 2:
int b = num - 4;
printf("The new number is %d.\n", b);
break;
default:
int c = num * 3;
printf("The new number is %d.\n", c);
break;
}
}
I would expect that gcc would complain about the declaration of
variables (a, b, and c) within the case statements. When I run "gcc
-Wall t.c" I get no warnings. When I run "g++ -Wall t.c" I get
warnings and errors as expected. I do get warnings when using MinGW on
Windows (gcc version 6.3 specifically). Did something change in 13.2?
Eric