Chris Lattner
445fcabff7
Alternate address spaces work:
...
rename QualType::getQualifiers to getCVRQualifiers.
Add some fixme's and clean up some code relevant to qualifiers.
Change ASQualType to contain a Type* instead of a QualType.
Any CVR qualifiers should be on the outer qual type.
llvm-svn: 47398
2008-02-20 20:55:12 +00:00
Nate Begeman
d8c4156172
Turn handling of parameter attributes back on, fixing the ObjC breakage
...
llvm-svn: 47246
2008-02-17 21:20:31 +00:00
Nate Begeman
d811e74786
Revert this temporarily, it's breaking objc :/
...
llvm-svn: 47245
2008-02-17 21:04:23 +00:00
Nate Begeman
f0e4a52211
Handle parameter attributes
...
llvm-svn: 47243
2008-02-17 21:02:04 +00:00
Chris Lattner
b080ed504e
Fix PR2042. One remaining issue: we don't currently diagnose
...
int foobar(int);
int foobar() {}
which requires ifdef'ing out a testcase in predefined-function.c.
llvm-svn: 47236
2008-02-17 19:31:09 +00:00
Anders Carlsson
6e3ace5205
Better handling of the aligned attribute.
...
llvm-svn: 47216
2008-02-16 19:51:27 +00:00
Chris Lattner
27055194b7
Fix CheckEndOfDirective to diagnose lines that contain macros that expand to
...
zero tokens. This fixes PR2045, thanks to Neil for finding another
incredibly subtle corner case :)
llvm-svn: 47203
2008-02-16 01:20:36 +00:00
Anders Carlsson
4b93979008
Fix typo
...
llvm-svn: 47199
2008-02-16 00:39:40 +00:00
Anders Carlsson
28e7108142
Handle packed attribute correctly
...
llvm-svn: 47197
2008-02-16 00:29:18 +00:00
Eli Friedman
5c9490924c
Don't call non-existent method... sorry about the spam; the fix seemed
...
trivial, but I forgot that method doesn't exist yet.
llvm-svn: 47175
2008-02-15 19:53:52 +00:00
Eli Friedman
b26be3d053
Get rid of unused variable warning.
...
llvm-svn: 47174
2008-02-15 19:49:39 +00:00
Eli Friedman
bd258284e0
Split out incomplete arrays from VariableArrayType into
...
IncompleteArrayType. This should make code dealing with both incomplete
and variable length arrays much more readable, plus it allows properly
making the distinction between isVariableArrayType() and
isVariablyModifiedType(). The patch is a little big, but it's
strightforward. so I don't think there should be any issues.
llvm-svn: 47165
2008-02-15 18:16:39 +00:00
Eli Friedman
9e805b24fd
Part of clearing up the whole VariableArrayType + incomplete arrays
...
thing. Some cleanups that can be done independently of the fix.
llvm-svn: 47158
2008-02-15 12:53:51 +00:00
Anders Carlsson
1a84106117
Get rid of AttributeList in the AST and use the new Attr class instead
...
llvm-svn: 47155
2008-02-15 07:04:12 +00:00
Eli Friedman
78e47634b2
Get rid of outdated code that masks type errors. Fixes PR2036.
...
llvm-svn: 47154
2008-02-15 06:56:02 +00:00
Steve Naroff
c1e22c7fa1
Fix unsafe static cast...
...
llvm-svn: 46980
2008-02-12 01:09:36 +00:00
Steve Naroff
b5fc2551e4
After yesterday's discussion ( http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-February/001044.html ), decided not to change the semantics of Type::isIncompleteType().
...
This commit simply changes a couple comments to reflect this decision.
llvm-svn: 46970
2008-02-11 21:52:37 +00:00
Steve Naroff
4b32796d1c
Add a comment/FIXME to an earlier change.
...
llvm-svn: 46947
2008-02-11 02:42:07 +00:00
Steve Naroff
326389b8ce
Fix http://llvm.org/bugs/show_bug.cgi?id=1988 .
...
Sema::CheckInitializerListTypes() needs to ignore invalid structures.
llvm-svn: 46942
2008-02-11 00:06:17 +00:00
Eli Friedman
4297826cac
Improve diagnostic for illegal array initialization.
...
llvm-svn: 46869
2008-02-08 00:48:24 +00:00
Anders Carlsson
5c6c05956e
Put back the top-level asm code; all tests pass now.
...
llvm-svn: 46868
2008-02-08 00:33:21 +00:00
Anders Carlsson
0fae4f56df
Back out 46855 for now, it causes test failures on Darwin.
...
llvm-svn: 46867
2008-02-08 00:23:11 +00:00
Anders Carlsson
bcc3a4bf64
Handle top-level asm declarations.
...
llvm-svn: 46855
2008-02-07 17:19:11 +00:00
Steve Naroff
b2c80c7c7b
Implement -fms-extensions. This allows us to fuzzy parse non-standard MS constructs used in "windows.h".
...
llvm-svn: 46838
2008-02-07 03:50:06 +00:00
Chris Lattner
622c193a32
inform astconsumer about tagdecls as they are defined.
...
llvm-svn: 46788
2008-02-06 00:51:33 +00:00
Chris Lattner
9413a016f4
simplify some code.
...
llvm-svn: 46774
2008-02-05 22:40:55 +00:00
Christopher Lamb
025b5fb883
Add experimental support for address space qualified types. Address space
...
qualifiers use the __attribute__((address_space(id))) syntax.
llvm-svn: 46691
2008-02-04 02:31:56 +00:00
Steve Naroff
e101f9548e
Hack Sema::MergeTypeDefDecl() to silently ignore duplicate typedef's in system headers files.
...
A bizarre, non-standard hook that many compilers appear to implement (sigh:-).
llvm-svn: 46583
2008-01-30 23:46:05 +00:00
Devang Patel
57412cacb6
Add TODO marker so that it is easier to search.
...
llvm-svn: 46561
2008-01-30 18:00:07 +00:00
Eli Friedman
3780d35306
Ignore __aligned__ with zero arguments in addition to __aligned__ with
...
one argument. Lets stuff using pthread.h compile.
llvm-svn: 46559
2008-01-30 17:38:42 +00:00
Steve Naroff
1e7873642b
Many refinements to Sema::MergeVarDecl(). This routine still needs some re-work to fully handle tentative decls.
...
This includes a fix to bz1908.
llvm-svn: 46540
2008-01-30 00:44:01 +00:00
Eli Friedman
361de6164d
Use the canonical type when comparing array types so the comparison
...
doesn't get confused by typedefs.
llvm-svn: 46502
2008-01-29 07:51:12 +00:00
Steve Naroff
1f7f6929f4
Implement "private extern" on function decls!
...
llvm-svn: 46464
2008-01-28 21:57:15 +00:00
Steve Naroff
aeb6b30f64
Fix a bug with struct initializers (in Sema::CheckInitializerListTypes()).
...
Test case included from bz1948 (thanks Neil!).
Also fixed an 80 column violation...
llvm-svn: 46430
2008-01-28 02:00:41 +00:00
Steve Naroff
fda820970a
Add more support for Apple's "private extern" extension...
...
llvm-svn: 46371
2008-01-25 22:14:40 +00:00
Steve Naroff
78c6cdf95e
Replace Sema::CheckVariableInitList, CheckConstantInitList, and CheckForCharArrayInitializer with CheckInitializerListTypes. The new routine now supports struct/union initializers.
...
This is a modified version of a patch by Eli Friedman. This version passes all of the clang tests and supports vectors:-)
Note that Eli and I are still unsatisfied the implementation of CheckInitializerListTypes(). We'd like to find a more elegant implementation. Nevertheless, this is a complex part of the standard (and may be hard to simplify). Since the complexity is localized to this routine, we can iterate without too much disruption:-)
llvm-svn: 46339
2008-01-25 00:51:06 +00:00
Chris Lattner
3efff5472b
Fix a bug recovering from broken code with a goto that Eli reported.
...
llvm-svn: 46336
2008-01-25 00:01:10 +00:00
Steve Naroff
af2a022563
- Add Sema::CheckStringLiteralInit, Sema::IsStringLiteralInit.
...
- Use previous hooks to simplify Sema::CheckInitializerTypes()...
llvm-svn: 46235
2008-01-22 00:55:40 +00:00
Steve Naroff
f9eb598de3
Sema::CheckInitializerTypes(). Start simpliying and cleaning up...
...
llvm-svn: 46234
2008-01-21 23:53:58 +00:00
Steve Naroff
acb6fa6bea
Sema::FinalizeDeclaratorGroup(): Tighten up the tentative definition rule when dealing with arrays.
...
Bug submitted by Eli.
llvm-svn: 46179
2008-01-18 20:40:52 +00:00
Steve Naroff
b716fbab44
Sema::FinalizeDeclaratorGroup()...make sure we emit an diagnostic for tentative definitions with incomplete types. Touch up all test cases that are effected.
...
llvm-svn: 46152
2008-01-18 00:39:39 +00:00
Steve Naroff
17832a48f8
Sema::MergeFunctionDecl()...make sure diagnostic is accurate (wrt function declarations/definitions). Patch by Carl Lewis!
...
llvm-svn: 46070
2008-01-16 15:01:34 +00:00
Chris Lattner
49f980c334
Fix build issue on cygwin, patch by Sam Bishop
...
llvm-svn: 45977
2008-01-14 21:47:29 +00:00
Steve Naroff
012484d6c8
Fix crasher when redefining functions. Not 100% pleased with this solution, but it is clearly an improvement. Will discuss with Chris later.
...
llvm-svn: 45975
2008-01-14 20:51:29 +00:00
Chris Lattner
38376f1595
Add first pieces of support for parsing and representing
...
extern "C" in C++ mode. Patch by Mike Stump!
llvm-svn: 45904
2008-01-12 07:05:38 +00:00
Steve Naroff
98f7203680
- Teach Expr::isConstantExpr() about InitListExpr's (and offsetof, since I noticed it was missing).
...
- Rename CheckInitializer() to CheckInitializerTypes().
- Removed the isStatic argument to CheckInitializerTypes() and all of it's subroutines. Checking for constant expressions is now done separately.
- Added CheckForConstantInitializer().
llvm-svn: 45840
2008-01-10 22:15:12 +00:00
Steve Naroff
e6b0ec8b5e
Fix Sema::ActOnDeclarator() to call MergeFunctionDecl for function decls that aren't in scope. Since C functions are in a flat namespace, we need to give them special treatment (when compared with variables and typedefs).
...
llvm-svn: 45789
2008-01-09 23:34:55 +00:00
Steve Naroff
c6edcbdb5d
Fix ASTContext::typesAreCompatible to allow for int/enum compatibility (C99 6.7.2.2p4).
...
Fix Sema::MergeFunctionDecl to allow for function type compatibility (by using the predicate on ASTContext). Function types don't have to be identical to be compatible...
llvm-svn: 45784
2008-01-09 22:43:08 +00:00
Ted Kremenek
1b0ea82459
Substituted all instances of the string "Objc" for "ObjC". This fixes
...
some naming inconsistencies in the names of classes pertaining to Objective-C
support in clang.
llvm-svn: 45715
2008-01-07 19:49:32 +00:00
Chris Lattner
9bad62c72a
Merge all the 'assignment' diagnostic code into one routine, decloning
...
it from several places. This merges the diagnostics, making them more
uniform and fewer in number. This also simplifies and cleans up the code.
Some highlights:
1. This removes a bunch of very-similar diagnostics.
2. This renames AssignmentCheckResult -> AssignConvertType
3. This merges PointerFromInt + IntFromPointer which were always treated the same.
4. This updates a bunch of test cases that have minor changes to the produced diagnostics.
llvm-svn: 45589
2008-01-04 18:04:52 +00:00