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

Reply via email to