- Oct 16, 2008
-
-
Argyrios Kyrtzidis authored
Issue a warning when there's an ambiguous function declarator (that could be a direct initializer for a variable defition). Idea originated from here: http://thread.gmane.org/gmane.comp.gcc.devel/101524 llvm-svn: 57609
-
- Oct 15, 2008
-
-
Argyrios Kyrtzidis authored
typedef int f(); struct S { f *x; // incorrectly assuming this is function decl, leading to failed assertions. }; llvm-svn: 57598
-
Daniel Dunbar authored
Also added serialization support to OverloadExpr. llvm-svn: 57588
-
Mon P Wang authored
llvm-svn: 57563
-
Ted Kremenek authored
Enhance dead store checker to not flag preincrements to dead variables where the preincrement is a subexpression, e.g. foo(++x); This can cause false negatives, but will remove a whole class of false positives. llvm-svn: 57554
-
Argyrios Kyrtzidis authored
Instead of using two sets of Decl kinds (Struct/Union/Class and CXXStruct/CXXUnion/CXXClass), use one 'Record' and one 'CXXRecord' Decl kind and make tag kind a property of TagDecl. Cleans up the code a bit and better reflects that Decl class structure. llvm-svn: 57541
-
Steve Naroff authored
Note: One day, we should consider moving the actual diags to ObjCQualifiedIdTypesAreCompatible(), since it has more information on the actual problem. GCC currently emits slightly more instructive errors for some cases involving protocols. I added a FIXME to the code. llvm-svn: 57529
-
- Oct 14, 2008
-
-
Argyrios Kyrtzidis authored
llvm-svn: 57514
-
Argyrios Kyrtzidis authored
llvm-svn: 57511
-
Daniel Dunbar authored
llvm-svn: 57502
-
Daniel Dunbar authored
llvm-svn: 57501
-
Daniel Dunbar authored
on non-float types. llvm-svn: 57477
-
Daniel Dunbar authored
- Follows the MSVC (original) implementation, including support of pack(show) (useful for testing). - Implements support for named pack records which gcc seems to ignore (or implements incorrectly). - Not currently wired to anything, only functionality change is the type checking of the pragma. llvm-svn: 57476
-
- Oct 13, 2008
-
-
Daniel Dunbar authored
- Currently still lives in CGCall.cpp but is intended to be the target specific place for hooking ABI information. - Select ABIInfo to use based on Target's prefix and pointer width. llvm-svn: 57445
-
- Oct 12, 2008
-
-
Argyrios Kyrtzidis authored
No functionality change. llvm-svn: 57417
-
Argyrios Kyrtzidis authored
When the static type on the Decl side is a subclass of DeclContext the compiler will use a "inlinable" static_cast, instead of always using an out-of-line function call. Note, though, that the isa<> check still uses an out-of-line function call. llvm-svn: 57415
-
Chris Lattner authored
wraps comments in <i> tags. Extend rewrite tokens to support this minimal functionality. llvm-svn: 57409
-
Chris Lattner authored
and lets a client iterate over it. llvm-svn: 57407
-
Chris Lattner authored
were setting a kind and then forming it. This is just a minor API cleanup, no functionality change. llvm-svn: 57404
-
Chris Lattner authored
unterminated. llvm-svn: 57403
-
Chris Lattner authored
keep comment mode, instead of returning false. This matches SkipWhitespace. llvm-svn: 57402
-
Chris Lattner authored
even whitespace, as tokens from the file. This is enabled with L->SetKeepWhitespaceMode(true) on a raw lexer. In this mode, you too can use clang as a really complex version of 'cat' with code like this: Lexer RawLex(SourceLocation::getFileLoc(SM.getMainFileID(), 0), PP.getLangOptions(), File.first, File.second); RawLex.SetKeepWhitespaceMode(true); Token RawTok; RawLex.LexFromRawLexer(RawTok); while (RawTok.isNot(tok::eof)) { std::cout << PP.getSpelling(RawTok); RawLex.LexFromRawLexer(RawTok); } This will emit exactly the input file, with no canonicalization or other translation. Realistic clients actually do something with the tokens of course :) llvm-svn: 57401
-
Chris Lattner authored
llvm-svn: 57399
-
Chris Lattner authored
llvm-svn: 57398
-
Chris Lattner authored
ivar. llvm-svn: 57397
-
Chris Lattner authored
llvm-svn: 57396
-
Chris Lattner authored
same we we do an unterminated string or character literal. This makes it so we can guarantee that the lexer never calls into the preprocessor (which would be suicide for a raw lexer). llvm-svn: 57395
-
Chris Lattner authored
llvm-svn: 57394
-
Chris Lattner authored
using LexRawToken, create one and use LexFromRawLexer. This avoids twiddling the RawLexer flag around and simplifies some code (even speeding raw lexing up a tiny bit). This change also improves the token paster to use a Lexer on the stack instead of new/deleting it. llvm-svn: 57393
-
Chris Lattner authored
llvm-svn: 57392
-
Chris Lattner authored
llvm-svn: 57391
-
Chris Lattner authored
llvm-svn: 57390
-
Chris Lattner authored
llvm-svn: 57389
-
- Oct 10, 2008
-
-
Steve Naroff authored
Final phase of converting BlockDecls over to DeclContext. This is unfortunately a largish/complex diff, however it was necessry to pass all the current block tests. llvm-svn: 57337
-
Daniel Dunbar authored
llvm-svn: 57335
-
Dale Johannesen authored
llvm-svn: 57332
-
- Oct 09, 2008
-
-
Zhongxing Xu authored
llvm-svn: 57317
-
Argyrios Kyrtzidis authored
class C { static const int number = 50; static int arr[number]; }; Here's how it worked: -GetTypeForDeclarator was called from both Sema::ActOnCXXMemberDeclarator and Sema::ActOnDeclarator. -VariableArrayTypes are not uniqued so two VariableArrayTypes were created with the same DeclRefExpr. -On exit they both tried to destroy that one DeclRefExpr. The fix is not to use GetTypeForDeclarator from the Sema::ActOnCXXMemberDeclarator. llvm-svn: 57313
-
- Oct 08, 2008
-
-
Steve Naroff authored
This required changes to attach the compound statement later on (like we do for functions). llvm-svn: 57304
-
Steve Naroff authored
- Modify BlockExpr to reference the BlockDecl. This is "cleanup" necessary to improve our lookup semantics for blocks (to fix <rdar://problem/6272905> clang block rewriter: parameter to function not imported into block?). Still some follow-up work to finish this (forthcoming). llvm-svn: 57298
-