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
Chris Lattner
0a788433eb
give better diagnostics for converting between function pointer and void*.
...
llvm-svn: 45556
2008-01-03 22:56:36 +00:00
Chris Lattner
4f20351142
When promoting array to pointer for argument, don't lose type qualifiers.
...
llvm-svn: 45510
2008-01-02 22:50:48 +00:00
Chris Lattner
5b12ab8c93
Don't attribute in file headers anymore. See llvmdev for the
...
discussion of this change.
llvm-svn: 45410
2007-12-29 19:59:25 +00:00
Anders Carlsson
2c26cc232f
Fix the embarassing typo for real this time (- vs _), sorry about breaking the tests Steve.
...
llvm-svn: 45202
2007-12-19 17:43:24 +00:00
Steve Naroff
735a2716de
Revert Anders r45191 commit...it broke several of the tests.
...
llvm-svn: 45199
2007-12-19 14:11:27 +00:00
Anders Carlsson
721f601507
Fix an embarassing typo and add some very limited support for the aligned attribute.
...
llvm-svn: 45195
2007-12-19 07:19:40 +00:00
Anders Carlsson
081f1b411d
Normalize attribute names if possible so we won't have to do two strcmps for every attribute.
...
llvm-svn: 45191
2007-12-19 06:16:30 +00:00
Chris Lattner
0f8a39c793
fix broken assert.
...
llvm-svn: 45189
2007-12-19 05:38:06 +00:00
Chris Lattner
78e34a00f4
Fix const propagation bug.
...
llvm-svn: 45152
2007-12-18 07:02:56 +00:00
Steve Naroff
d78c81b6de
Sema::ActOnFinishFunctionBody(): Since we no longer synthesize a FunctionDecl for each method, remove the unconditional initialization to 0 and corresponding comment.
...
llvm-svn: 45008
2007-12-13 18:18:56 +00:00
Ted Kremenek
1daa3cfbae
TargetInfo no longer includes a reference to SourceManager.
...
Moved all clients of Diagnostics to use FullSourceLoc instead of SourceLocation.
Added many utility methods to FullSourceLoc to provide shorthand for:
FullLoc.getManager().someMethod(FullLoc.getLocation());
instead we have:
FullLoc.someMethod();
Modified TextDiagnostics (and related classes) to use this short-hand.
llvm-svn: 44957
2007-12-12 22:39:36 +00:00
Chris Lattner
da463fe7c1
split objc pieces of SemaDecl.cpp out into SemaDeclObjC.cpp
...
llvm-svn: 44925
2007-12-12 07:09:47 +00:00
Chris Lattner
f641255a86
simplify code now that isConstantExpr really does always
...
return a loc.
llvm-svn: 44890
2007-12-11 23:15:04 +00:00
Fariborz Jahanian
3b5dca2533
For @optional unimplemented methods do not issue the warning.
...
llvm-svn: 44872
2007-12-11 19:10:26 +00:00
Steve Naroff
c30dcf1251
Change err_undef_protocolref to warn_undef_protocolref (this is consistent with GCC).
...
llvm-svn: 44840
2007-12-11 02:44:30 +00:00
Steve Naroff
f727faf2ed
Explicitly set the string literal type from "char *" to "constant array of char".
...
At this point, I am fairly certain the front-end is correct. Unfortunately, the back-end is still unhappy.
That said, I've commented out the two lines in globalinit.c that are causing problems.
Chris, please have a look...thanks!
llvm-svn: 44823
2007-12-11 00:00:01 +00:00
Steve Naroff
91f78080e3
Add support for initializing char arrays from string literals.
...
Adapted from a patch by Anders Carlsson.
llvm-svn: 44816
2007-12-10 22:44:33 +00:00
Steve Naroff
2c20c38ced
Have Sema::CheckConstantInitList skip semantic analysis when the element type is a record (until we implement the FIXME). This removes a bogus error for the following code...
...
snarofflocal% cat bug.m
#import <Foundation/NSGeometry.h>
#define NUMHELICOPTERRECTS 5
static NSRect helicopterRects[NUMHELICOPTERRECTS] = {
{{27, 0}, {18, 11}}, // Bottom
{{0, 8}, {4, 11}}, // Tail
{{0, 16}, {50, 1}},
{{22, 5}, {18, 12}}, // Body
{{0, 10}, {42, 3}}
};
llvm-svn: 44684
2007-12-07 21:12:53 +00:00
Steve Naroff
b2f8ff153d
Rewrite 'super' within a class method. This required some minor tweaks to the front-end.
...
llvm-svn: 44673
2007-12-07 03:50:46 +00:00
Anders Carlsson
cbdb6f5b5d
Revert DidWarn change - It won't catch all cases anyway and GCC warns for every excess element. Maybe later we can add back the limit and make it smarter.
...
llvm-svn: 44603
2007-12-05 04:57:06 +00:00
Steve Naroff
2644aaf537
Recognize CompoundLiteralExpr's as valid lvalue's.
...
Also updated a FIXME in Sema::CheckInitializer()...
llvm-svn: 44602
2007-12-05 04:00:10 +00:00