Argyrios Kyrtzidis
554a07bab3
-Changes to TagDecl:
...
Added TagKind enum.
Added getTagKind() method.
Added convenience methods: isEnum(), isStruct(), isUnion(), isClass().
-RecordDecl/CXXRecordDecl::Create() accept a TagKind enum instead of a DeclKind one.
llvm-svn: 52160
2008-06-09 23:19:58 +00:00
Eli Friedman
7567573926
For struct initialization, check compatibility with the unqualified
...
type; this isn't explicitly stated in the standard, but it doesn't
really make sense for them to have an effect here. Fixes the included
testcase, sent to me by Steve Naroff.
llvm-svn: 52113
2008-06-09 03:52:40 +00:00
Eli Friedman
0e56c82e4a
Count the number of initializable members correctly in structs/unions
...
with unnamed members.
llvm-svn: 51557
2008-05-25 14:03:31 +00:00
Eli Friedman
e0f832bd4f
Diagnose implicit init list for empty aggregate, like struct {}. Fixes
...
PR2151 (by not creating the empty implicit init list).
llvm-svn: 51556
2008-05-25 13:49:22 +00:00
Eli Friedman
85f5497c4a
Move the error checking for variable-sized objects so we don't
...
double-report errors; fixes PR2362.
llvm-svn: 51555
2008-05-25 13:22:35 +00:00
Eli Friedman
d0e48ea682
Be a bit more defensive in SemaInit.
...
llvm-svn: 51301
2008-05-20 05:25:56 +00:00
Eli Friedman
6fcdec280b
Adjust warning so that it doesn't fire when there is an error.
...
llvm-svn: 51269
2008-05-19 20:20:43 +00:00
Eli Friedman
feb4cc1c6a
Add errors for some illegal constructs (specifically, "int a = {{3}};"
...
and "int a = {};"). I'll adjust the tests in a bit.
llvm-svn: 51265
2008-05-19 20:12:18 +00:00
Eli Friedman
5a36d3fffb
Some more SemaInit cleanup.
...
llvm-svn: 51262
2008-05-19 20:00:43 +00:00
Eli Friedman
23a9e3176c
Various fixes; solves (almost) all of the test regressions that would be
...
caused by enabling SemaInit.
llvm-svn: 51261
2008-05-19 19:16:24 +00:00
Steve Naroff
125d73dc84
Several fixes to SemaInit.cpp. It's still not enabled (since it fails a few tests). Expect to enable it very soon.
...
llvm-svn: 50688
2008-05-06 00:23:44 +00:00
Steve Naroff
f8ecff2a94
Replace Sema::CheckInitializerListTypes() with a helper class (InitListChecker) that synthesizes implicit InitListExpr's when appropriate (see InitListExpr comments in Expr.h for more details). I also moved the code to SemaInit.cpp, to help reduce clutter in SemaDecl.cpp.
...
NOTE: This work is incomplete and still fails many tests (as a result, it isn't enabled yet). Nevertheless, I wanted to check it in so I can work on it from home.
llvm-svn: 50544
2008-05-01 22:18:59 +00:00