- Nov 19, 2008
-
-
Douglas Gregor authored
post-decrement, including support for generating all of the built-in operator candidates for these operators. C++ and C have different rules for the arguments to the builtin unary '+' and '-'. Implemented both variants in Sema::ActOnUnaryOp. In C++, pre-increment and pre-decrement return lvalues. Update Expr::isLvalue accordingly. llvm-svn: 59638
-
Argyrios Kyrtzidis authored
With this snippet: void f(a::b); An assert is hit: Assertion failed: CachedTokens[CachedLexPos-1].getLocation() == Tok.getAnnotationEndLoc() && "The annotation should be until the most recent cached token", file ..\..\lib\Lex\PPCaching.cpp, line 98 Introduce Preprocessor::RevertCachedTokens that reverts a specific number of tokens when backtracking is enabled. llvm-svn: 59636
-
Argyrios Kyrtzidis authored
Remove Preprocessor::CacheTokens boolean data member. The same functionality can be provided by using Preprocessor::isBacktrackEnabled(). llvm-svn: 59631
-
Daniel Dunbar authored
llvm-svn: 59622
-
Zhongxing Xu authored
llvm-svn: 59619
-
Zhongxing Xu authored
llvm-svn: 59618
-
Daniel Dunbar authored
PragmaPackStack. Thanks Chris! llvm-svn: 59616
-
Daniel Dunbar authored
value). - Use extra argument to EmitStoreThroughLValue to provide place to write update bit-field value if caller requires it. - This fixes several FIXMEs. llvm-svn: 59615
-
Sanjiv Gupta authored
llvm-svn: 59613
-
Chris Lattner authored
llvm-svn: 59611
-
Chris Lattner authored
llvm-svn: 59610
-
Chris Lattner authored
llvm-svn: 59609
-
Chris Lattner authored
llvm-svn: 59608
-
Chris Lattner authored
llvm-svn: 59607
-
Chris Lattner authored
llvm-svn: 59606
-
Chris Lattner authored
the code and speeds it up. llvm-svn: 59604
-
Chris Lattner authored
llvm-svn: 59603
-
Chris Lattner authored
llvm-svn: 59602
-
Chris Lattner authored
first. This should allow removal of a bunch of II->getName() calls. llvm-svn: 59601
-
Chris Lattner authored
llvm-svn: 59600
-
Chris Lattner authored
llvm-svn: 59599
-
Chris Lattner authored
llvm-svn: 59598
-
Chris Lattner authored
llvm-svn: 59597
-
Chris Lattner authored
This also makes it illegal to have bare '%'s in diagnostics. If you want a % in a diagnostic, use %%. llvm-svn: 59596
-
Daniel Dunbar authored
llvm-svn: 59594
-
Chris Lattner authored
const char*'s are now not converted to std::strings when the diagnostic is formed, we just hold onto their pointer and format as needed. This commit makes DiagnosticClient::FormatDiagnostic even more of a mess, I'll fix it in the next commit. llvm-svn: 59593
-
Chris Lattner authored
llvm-svn: 59589
-
Chris Lattner authored
__builtin_prefetch code to only emit one diagnostic per builtin_prefetch. While this has nothing to do with the rest of the patch, the code seemed like overkill when I was updating it. llvm-svn: 59588
-
Douglas Gregor authored
not "int". Fix a typo in the promotion of enumeration types that was causing some integral promotions to look like integral conversions (leading to extra ambiguities in overload resolution). Check for "acceptable" overloaded operators based on the types of the arguments. This is a somewhat odd check that is specified by the standard, but I can't see why it actually matters: the overload candidates it suppresses don't seem like they would ever be picked as the best candidates. llvm-svn: 59583
-
Ted Kremenek authored
llvm-svn: 59579
-
Fariborz Jahanian authored
Also, took care of Daniel's commments. llvm-svn: 59575
-
Ted Kremenek authored
- Add variants of IsNonPragmaNonMacroLexer to accept an IncludeMacroStack entry (simplifies some uses). - Use IsNonPragmaNonMacroLexer in Preprocessor::LookupFile. Performance testing of -Eonly on Cocoa.h shows no performance regression because of this patch. llvm-svn: 59574
-
Ted Kremenek authored
llvm-svn: 59573
-
Ted Kremenek authored
llvm-svn: 59571
-
Douglas Gregor authored
to support operators defined as member functions, e.g., struct X { bool operator==(X&); }; Overloading with non-member operators is supported, and the special rules for the implicit object parameter (e.g., the ability for a non-const *this to bind to an rvalue) are implemented. This change also refactors and generalizes the code for adding overload candidates for overloaded operator calls (C++ [over.match.expr]), both to match the rules more exactly (name lookup of non-member operators actually ignores member operators) and to make this routine more reusable for the other overloaded operators. Testing for the initialization of the implicit object parameter is very light. More tests will come when we get support for calling member functions directly (e.g., o.m(a1, a2)). llvm-svn: 59564
-
- Nov 18, 2008
-
-
Chris Lattner authored
llvm-svn: 59561
-
Fariborz Jahanian authored
__weak objects. llvm-svn: 59560
-
Chris Lattner authored
llvm-svn: 59556
-
Chris Lattner authored
llvm-svn: 59554
-
Fariborz Jahanian authored
llvm-svn: 59553
-