On Sun, Sep 15, 2013 at 12:23 PM, Olivier Goffart <[email protected]> wrote:

> Hi,
>
> The attached patch fix a crash when there are pragma in case statement.
> (Seen while parsing glibc source code)
>
> void __td_ta_lookup_th_unique()
> {
>     int t = 0;
>     switch (t)
>     {
>         case 1:
> #pragma weak t
>           ;
>     }
> }
>

Thanks for looking into this.

I don't particularly like adding a NullStmt here -- there was no null
statement in the source code, so this is not a faithful AST representation
of the source.

This approach seems like it will also accept this:

switch (t) {
  case 1:
#pragma weak t
}

We should probably reject this, because there is no statement after the
case label. (That said, GCC accepts the above code, and fully treats these
pragmas as being statement-like entities, so your patch would be
bug-compatible with them.)

Does the same issue exist for goto labels?


> http://llvm.org/bugs/show_bug.cgi?id=16705
>
> Regards
> --
> Olivier
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to