------- Comment #9 from alex dot pyattaev at gmail dot com  2010-05-09 19:07 
-------
(In reply to comment #7)
> I have encountered the bug with switch construct. And the problem is not the
> error message, but the fact that it is still compiling just fine this code:
> switch (chan_prop.model_type)
>         {
>                 case CM_STATIC:
>                         return static_channel_model(src, ntransmitters, dst,
>                                                     &chan_prop);
>                 case CM_FRISS:
>                         return friss_channel_model(src, ntransmitters, dst,
>                                                    &chan_prop);
>                 default:
>                         return -1;
>         }
> There should be some consistency at least! I'd like to see this fixed 
> properly.
> The compiler should be perfectly predictable, and not like "Sorry, i don't 
> like
> this construct here... put a semicolon please".
> 
> I'd like this bug to be reopened and FIXED PROPERLY
> 
> gcc --version =  (Gentoo 4.4.3-r2 p1.2) 4.4.3
> 

A good example of seemingly normal code is following:
 switch (whatever)
        {
                case 1:
                        int i=0;
                        i++;
                        printf("%d",i);                   
                        break;
        }
It is technically perfectly legal to declare i as a local variable. However,
the compiler issues an error. And it is absolutely not clear why "int i=0;" is
not a statement. That is probably the only really annoying case. Moving
declaration of i into a code block solves the issue. I spent like 10 minutes
trying to find out why perfectly legal code would not compile.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37231

Reply via email to