[cfe-dev] Fwd: CodeGen/statements.c: Don't understand test and its failure
Chris Lattner
clattner at apple.com
Sat Oct 17 13:48:29 PDT 2009
On Oct 15, 2009, at 9:05 AM, John Thompson wrote:
> Sorry Chris, I meant to send this to the list.
The relevant part of the dump is:
> (DeclStmt 029B7238 <line:23:1, col:23>
> 029B70A8 "long x =
> (ImplicitCastExpr 029B71F0 <col:10, col:20> 'long' <Unknown>
> (BinaryOperator 029B71A0 <col:10, col:20> 'int' '-'
> (AddrLabelExpr 029B7110 <col:10, col:12> 'void *' bar
> 029B7068)
> (AddrLabelExpr 029B7158 <col:18, col:20> 'void *' baz
> 029B7028)))"
>
This case should have been fixed by r84039. Can you verify that it
still fails with ToT?
-Chris
>
> ---------- Forwarded message ----------
> From: John Thompson <john.thompson.jtsoftware at gmail.com>
> Date: Thu, Oct 15, 2009 at 8:59 AM
> Subject: Re: [cfe-dev] CodeGen/statements.c: Don't understand test
> and its failure
>
>
> This is the GNU address of a label extension. Can you remove the
> 'static' (which will allow it to parse) and paste what clang-cc -ast-
> dump shows for that statement?
>
>
> Thanks. Here it is:
>
> CodeGen/statements.c:5:6: warning: integer constant is too large for
> its type
> case 111111111111111111111111111111111111111:
> ^
> CodeGen/statements.c:5:6: warning: overflow converting case value to
> switch condition type (11011968431394943431 to 18446744072755114439)
> CodeGen/statements.c:11:15: warning: non-void function 'test2'
> should return a value
> int test2() { return; }
> ^
> CodeGen/statements.c:12:16: warning: void function 'test3' should
> not return a value
> void test3() { return 4; }
> ^ ~
> CodeGen/statements.c:24:17: warning: incompatible pointer to integer
> conversion initializing 'void *', expected 'long'
> static long y = &&baz;
> ^~~~~
> CodeGen/statements.c:28:10: warning: incompatible integer to pointer
> conversion passing 'long', expected 'void *'
> goto *y;
> ^~
> CodeGen/statements.c:30:8: warning: incompatible integer to pointer
> conversion passing 'long', expected 'void *'
> goto *x;
> ^~
> CodeGen/statements.c:25:3: warning: expression result unused
> &&bing;
> ^~~~~~
> CodeGen/statements.c:26:3: warning: expression result unused
> &&blong;
> ^~~~~~~
> CodeGen/statements.c:34:31: warning: incompatible integer to pointer
> conversion passing 'long long', expected 'void *'
> int test5(long long b) { goto *b; }
> ^~
> typedef char *__builtin_va_list;
> void test1(int x)
> int bar();
> int test2()
>
> void test3()
>
> void test4()
>
> int test5(long long b)
>
> (CompoundStmt 029AF2D8 <CodeGen/statements.c:3:19, line:8:1>
> (SwitchStmt 029AEC98 <line:4:1, line:7:1>
> (DeclRefExpr 029B0570 <line:4:9> 'int' ParmVar='x' 029B0508)
> (CompoundStmt 029AF120 <col:12, line:7:1>
> (CaseStmt 029AEE48 <line:5:1, line:6:5>
> (CallExpr 029AF0A8 <col:1, col:5> 'int'
> (ImplicitCastExpr 029AF060 <col:1> 'int (*)()'
> <FunctionToPointerDecay>
> (DeclRefExpr 029AEFD0 <col:1> 'int ()'
> FunctionDecl='bar' 029AEF40)))
> (ImplicitCastExpr 029AF1E8 <line:5:6> 'int' <Unknown>
> (IntegerLiteral 029AEDF0 <col:6> 'unsigned long long'
> 11011968431394943431))
> <<<NULL>>>))))
> (CompoundStmt 029AF3F0 <CodeGen/statements.c:11:13, col:23>
> (ReturnStmt 029AF3B0 <col:15>))
> (CompoundStmt 029AF638 <CodeGen/statements.c:12:14, col:26>
> (ReturnStmt 029AF5F8 <col:16, col:23>
> (IntegerLiteral 029AF5A0 <col:23> 'int' 4)))
> (CompoundStmt 029AF740 <CodeGen/statements.c:15:14, line:31:1>
> (LabelStmt 029B7068 <line:16:1, line:20:2> 'bar'
> (LabelStmt 029B7028 <line:17:1, line:20:2> 'baz'
> (LabelStmt 029AF7C8 <line:18:1, line:20:2> 'blong'
> (LabelStmt 029AF788 <line:19:1, line:20:2> 'bing'
> (NullStmt 029AF230 <col:2>)))))
> (DeclStmt 029B7238 <line:23:1, col:23>
> 029B70A8 "long x =
> (ImplicitCastExpr 029B71F0 <col:10, col:20> 'long' <Unknown>
> (BinaryOperator 029B71A0 <col:10, col:20> 'int' '-'
> (AddrLabelExpr 029B7110 <col:10, col:12> 'void *' bar
> 029B7068)
> (AddrLabelExpr 029B7158 <col:18, col:20> 'void *' baz
> 029B7028)))"
> (DeclStmt 029B7370 <line:24:1, col:22>
> 029B7278 "static long y =
> (ImplicitCastExpr 029B7328 <col:17, col:19> 'long' <Unknown>
> (AddrLabelExpr 029B72E0 <col:17, col:19> 'void *' baz
> 029B7028))"
> (AddrLabelExpr 029B73B0 <line:25:3, col:5> 'void *' bing 029AF788)
> (AddrLabelExpr 029B73F8 <line:26:3, col:5> 'void *' blong 029AF7C8)
> (IfStmt 029B7558 <line:27:3, line:28:11>
> (DeclRefExpr 029B7440 <line:27:7> 'long' Var='y' 029B7278)
> (IndirectGotoStmt 029B7518 <line:28:5, col:11>
> (ImplicitCastExpr 029B74D0 <col:11> 'void *' <Unknown>
> (DeclRefExpr 029B7488 <col:11> 'long' Var='y' 029B7278)))
> <<<NULL>>>)
> (IndirectGotoStmt 029B7630 <line:30:3, col:9>
> (ImplicitCastExpr 029B75E8 <col:9> 'void *' <Unknown>
> (DeclRefExpr 029B75A0 <col:9> 'long' Var='x' 029B70A8))))
> (CompoundStmt 029AE428 <CodeGen/statements.c:34:24, col:35>
> (IndirectGotoStmt 029B7918 <col:26, col:32>
> (ImplicitCastExpr 029B78D0 <col:32> 'void *' <Unknown>
> (DeclRefExpr 029B7888 <col:32> 'long long' ParmVar='b'
> 029B7708))))
> 10 diagnostics generated.
>
>
>
>
> --
> John Thompson
> John.Thompson.JTSoftware at gmail.com
>
>
>
>
>
>
> --
> John Thompson
> John.Thompson.JTSoftware at gmail.com
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20091017/eb61e853/attachment.html>
More information about the cfe-dev
mailing list