Bug #:
Submitted by: Reviewed by: Extended Expr's constant expression predicates to return a source location if the predicate returns false. This enables us to position the cursor exactly were the error occurred (simple pleasures:-). constant.c:9:9: error: enumerator value for 'E2' is not an integer constant E2 = (aconst + 1), // illegal ^ constant.c:10:8: error: enumerator value for 'E3' is not an integer constant E3 = "abc", ^ constant.c:12:12: error: enumerator value for 'E5' is not an integer constant E5 = 0?7:printf("xx"), // illegal ^ constant.c:13:12: error: enumerator value for 'E6' is not an integer constant E6 = 1?7:printf("xx"), // legal ^ constant.c:16:14: error: enumerator value for 'E9' is not an integer constant E9 = E0 || a, // illegal ^ constant.c:21:6: error: array has incomplete element type 'void' void ary[7]; ^ constant.c:22:28: error: variable length array declared outside of any function struct { int a; } ary2[1?7:printf("xx")], ^ constant.c:23:34: error: variable length array declared outside of any function aryIllegal[0?7:printf("yy")]; ^ constant.c:25:10: error: variable length array declared outside of any function int ary3[a]; // illegal ^ constant.c:26:17: error: size of array has non-integer type 'float' typedef int vla[2.0]; // illegal ^ constant.c:30:22: error: size of array has non-integer type 'float' int nonIntegerArray2[1+2.0]; ^ llvm-svn: 39454
Loading
Please register or sign in to comment