mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-26 23:09:03 -04:00

Step 1: Start instantiating InitListExpr's. Step 2: Call newly added function Sema::CheckInitializer() from Sema::ParseDeclarator(). Step 3: Give InitListExpr's a preliminary type. Step 4: Start emitting diagnostics for simple assignments. Note: As a result of step 1, the CodeGen/mandel.c test asserts "Unimplemented agg expr!", which is expected. As a result of step 4, the test below now fails. This isn't expected and needs to be investigated (it appears type checking for C++ references is flawed in some way). ******************** TEST 'Sema/cxx-references.cpp' FAILED! ******************** Command: clang -fsyntax-only Sema/cxx-references.cpp Output: Sema/cxx-references.cpp:8:12: warning: incompatible pointer types assigning 'int &*' to 'int *' int *p = &r; ^~ Sema/cxx-references.cpp:10:20: error: incompatible types assigning 'int (int)' to 'int (&)(int)' int (&rg)(int) = g; ^ Sema/cxx-references.cpp:13:18: error: incompatible types assigning 'int [3]' to 'int (&)[3]' int (&ra)[3] = a; ^ Sema/cxx-references.cpp:16:14: error: incompatible types assigning 'int *' to 'int *&' int *& P = Q; ^ 4 diagnostics generated. ******************** TEST 'Sema/cxx-references.cpp' FAILED! ******************** llvm-svn: 41671
28 lines
573 B
C
28 lines
573 B
C
// RUN: clang -parse-ast-check -pedantic %s
|
|
|
|
void func() {
|
|
int x = 1;
|
|
|
|
//int x2[] = { 1, 3, 5 };
|
|
|
|
int x3[x] = { 1, 2 }; // gcc-error {{variable-sized object may not be initialized}}
|
|
|
|
int x4 = { 1, 2 }; // gcc-warning {{excess elements in array initializer}}
|
|
|
|
int y[4][3] = {
|
|
{ 1, 3, 5 },
|
|
{ 2, 4, 6 },
|
|
{ 3, 5, 7 },
|
|
};
|
|
|
|
int y2[4][3] = {
|
|
1, 3, 5, 2, 4, 6, 3, 5, 7
|
|
};
|
|
|
|
struct threeElements {
|
|
int a,b,c;
|
|
} z = { 1 };
|
|
|
|
struct threeElements *p = 7; // expected-warning{{incompatible types assigning 'int' to 'struct threeElements *'}}
|
|
}
|