Commit Graph

375 Commits

Author SHA1 Message Date
Nate Begeman 0a6192cfb8 Add fastcall/stdcall attribute support
Generate CallingConv::Fast when fastcall attribute is present

llvm-svn: 48017
2008-03-07 20:04:22 +00:00
Ted Kremenek 7bdd630334 Patch by Nuno Lopes:
Added more comments for code processing attribute "format".
  Added more checks for corner cases, test cases, and warnings.

llvm-svn: 48011
2008-03-07 18:43:49 +00:00
Chris Lattner 37e0587839 remove the source location arguments to various target query methods.
llvm-svn: 47954
2008-03-05 18:54:05 +00:00
Chris Lattner 855d024a83 Remove the first layer of support for "portability" warnings. This is
theoretically useful, but not useful in practice.  It adds a bunch of 
complexity, and not much value.  It's best to nuke it.  One big advantage
is that it means the target interfaces will soon lose their SLoc arguments
and target queries can never emit diagnostics anymore (yay).  Removing this
also simplifies some of the core preprocessor which should make it slightly
faster.

Ted, I didn't simplify TripleProcessor, which can now have at most one
triple, and can probably just be removed.  Please poke at it when you have
time.

llvm-svn: 47930
2008-03-05 01:18:20 +00:00
Chris Lattner 0fdc379475 The operand to the visibility attribute is required to be a quoted string, not a bare identifier.
llvm-svn: 47893
2008-03-04 18:08:48 +00:00
Ted Kremenek 98c56677a7 Only allow a "noreturn" attribute to be affixed to a FunctionDecl.
llvm-svn: 47844
2008-03-03 16:52:27 +00:00
Chris Lattner 8496639787 Add a bunch of attributes, patch by Nuno Lopes.
llvm-svn: 47837
2008-03-03 03:28:21 +00:00
Chris Lattner 8a8558bcd4 Add support for attribute(deprecated), patch by Nuno Lopes!
llvm-svn: 47753
2008-02-29 16:48:43 +00:00
Ted Kremenek 49b61ab6bd Added parsing of attributes for functions.
llvm-svn: 47693
2008-02-27 22:18:07 +00:00
Ted Kremenek f7146ca3bc Added support for attribute "noreturn."
llvm-svn: 47689
2008-02-27 20:43:06 +00:00
Chris Lattner 7768313c13 Fix PR2092 by making sure the sign of the enum value follows the
sign of its type in the early exit case.  No testcase, because this
doesn't manifest as a failure.

llvm-svn: 47581
2008-02-26 00:33:57 +00:00
Chris Lattner eb85ab44f2 convert tabs to spaces, patch by Mike Stump!
llvm-svn: 47560
2008-02-25 21:04:36 +00:00
Nate Begeman d45d38d2b7 Handle __attribute__((annotate("string")))
llvm-svn: 47451
2008-02-21 19:30:49 +00:00
Chris Lattner 788404f312 Collect and build and process type attributes on pointers. For
example, we can now correctly build the type for things like:
    _AS1 float * _AS2 *B;

llvm-svn: 47420
2008-02-21 01:32:26 +00:00
Chris Lattner ee0d271819 Correctly handle address space qualifiers in declspecs. This
allows us to correctly handle stuff like:

  _AS1 float *B;

and to reject stuff like:

  _AS1 _AS2* x;

llvm-svn: 47417
2008-02-21 00:48:22 +00:00
Chris Lattner dcee3a9630 rename some methods.
llvm-svn: 47414
2008-02-20 23:25:22 +00:00
Chris Lattner f179190206 Use getKind() in HandleDeclAttribute instead of decoding the string inline.
llvm-svn: 47413
2008-02-20 23:17:35 +00:00
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