- Oct 16, 2008
-
-
Daniel Dunbar authored
- Disables the freeing of the ASTContext and the TranslationUnit after parsing & sema. - Primarily for timing the impact on -fsyntax-only timings. llvm-svn: 57643
-
Argyrios Kyrtzidis authored
llvm-svn: 57642
-
rdar://problem/6239726Steve Naroff authored
and http://llvm.org/bugs/show_bug.cgi?id=2893 llvm-svn: 57640
-
Daniel Dunbar authored
- Implement fast path when value easily fits in a uint64. - ~6x faster, translates to 1-2% on Cocoa.h llvm-svn: 57632
-
Daniel Dunbar authored
llvm-svn: 57629
-
Zhongxing Xu authored
new VisitLValue method is added to replace the old VisitLVal. The semantics model becomes more explicit to separate rvalue evaluation from lvalue evaluation. llvm-svn: 57627
-
Daniel Dunbar authored
floats. - With testcase, which also has some other things GCC folds but we don't commented out in it. llvm-svn: 57624
-
Daniel Dunbar authored
is to encode the state of the #pragma pack stack as an attribute when the structure is declared. - Extend PackedAttr to take an alignment (in bits), and reuse for both __attribute__((packed)) (which takes no argument, instead packing tightly (to "minimize the memory required") and for #pragma pack (which allows specification of the maximum alignment in bytes). __attribute__((packed)) is just encoded as Alignment=1. This conflates two related but different mechanisms, but it didn't seem worth another attribute. - I have attempted to follow the MSVC semantics as opposed to the gcc ones, since if I understand correctly #pragma pack originated with MSVC. The semantics are generally equivalent except when the stack is altered during the definition of a structure; its not clear if anyone does this in practice. See testcase if curious. llvm-svn: 57623
-
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
-