Daniel Dunbar
34fb67272c
Minor #include cleaning
...
- Drop TokenKinds.h from Action.h
- Move DeclSpec.h from Sema.h into individual Sema .cpp files
llvm-svn: 54625
2008-08-11 03:27:53 +00:00
Steve Naroff
eaf5853004
InitListChecker::CheckListElementTypes(): Check for function types and issue an appropriate diagnostic.
...
llvm-svn: 54614
2008-08-10 16:05:48 +00:00
Eli Friedman
a3b2f6f2af
Make sure to count the struct elements correctly; here, we want the
...
member count. The count returned by numStructUnionElements is the
number of initializers that will be consumed, not the number of members
to iterate through. Fixes PR2534.
llvm-svn: 54601
2008-08-09 23:45:45 +00:00
Chris Lattner
7adf076088
Finally fix PR2189. This makes a fairly invasive but important change to
...
move getAsArrayType into ASTContext instead of being a method on type.
This is required because getAsArrayType(const AT), where AT is a typedef
for "int[10]" needs to return ArrayType(const int, 10).
Fixing this greatly simplifies getArrayDecayedType, which is a good sign.
llvm-svn: 54317
2008-08-04 07:31:14 +00:00
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