summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Do not parse hexadecimal floating point literals in C++0x mode because they areAlexis Hunt2010-01-102-3/+9
| | | | | | | | | | | | | | | | | | incompatible with user-defined literals, specifically with the following form: 0x1p+1 The preprocessing-number token extends only as far as the 'p'; the '+' is not included. Previously we could get away with this extension as p was an invalid suffix, but now with user-defined literals, 'p' might well be a valid suffix and we are forced to consider it as such. This patch also adds a warning in non-0x C++ modes telling the user that this extension is incompatible with C++0x that is enabled by default (previously and with other languages, we warn only with a compliance option such as -pedantic). llvm-svn: 93135
* Improve code completion by introducing patterns for the various C andDouglas Gregor2010-01-108-30/+594
| | | | | | | | | | | | | | | | | | | | | | C++ grammatical constructs that show up in top-level (namespace-level) declarations, member declarations, template declarations, statements, expressions, conditions, etc. For example, we now provide a pattern for static_cast<type>(expr) when we can have an expression, or using namespace identifier; when we can have a using directive. Also, improves the results of code completion at the beginning of a top-level declaration. Previously, we would see value names (function names, global variables, etc.); now we see types, namespace names, etc., but no values. llvm-svn: 93134
* Silence MSVC warning.Benjamin Kramer2010-01-101-1/+1
| | | | | | RewriteObjC.cpp(4419) : warning C4804: '>' : unsafe use of type 'bool' in operation llvm-svn: 93124
* Make clone() method out-of-line for Attr classes.Anton Korobeynikov2010-01-102-0/+144
| | | | llvm-svn: 93120
* Try to make cmake happyAnton Korobeynikov2010-01-102-1/+2
| | | | llvm-svn: 93119
* Generalize target weirdness handling having proper layering in mind:Anton Korobeynikov2010-01-1013-41/+312
| | | | | | | | | 1. Add helper class for sema checks for target attributes 2. Add helper class for codegen of target attributes As a proof-of-concept - implement msp430's 'interrupt' attribute. llvm-svn: 93118
* Rename file to generalization in next commitsAnton Korobeynikov2010-01-101-0/+0
| | | | llvm-svn: 93117
* Simplify code. No functionality change.Benjamin Kramer2010-01-101-18/+1
| | | | llvm-svn: 93114
* stringref'ize a bunch of filename handling logic. MuchChris Lattner2010-01-105-92/+73
| | | | | | nicer than passing around two const char*'s. llvm-svn: 93094
* Fix PR5982, a refacto in checking for '=' in a -D argument.Daniel Dunbar2010-01-101-8/+5
| | | | llvm-svn: 93088
* Fix a FIXME.Daniel Dunbar2010-01-101-2/+2
| | | | llvm-svn: 93087
* Darwin/ld: Don't pass '-weak_reference_mismatches non-weak' whenDaniel Dunbar2010-01-101-6/+0
| | | | | | -weak_reference_mismatches is not present, it is the default. llvm-svn: 93086
* clarify comment.Chris Lattner2010-01-101-2/+2
| | | | llvm-svn: 93084
* implement rdar://7520940: published framework headers shouldChris Lattner2010-01-103-3/+16
| | | | | | | import other headers within the same framework with the full framework path, not with a relative include. llvm-svn: 93083
* Fix overzealous assertion in GRExprEngine::VisitLValue(). ATed Kremenek2010-01-091-7/+25
| | | | | | | | | CallExpr/ObjCMessageExpr can be visited in an "lvalue" context if it returns a struct temporary. Currently the analyzer doesn't reason about struct temporary returned by function calls, but we shouldn't crash here either. llvm-svn: 93081
* implement -ftabstop=width, patch by Christian AdåkerChris Lattner2010-01-093-2/+13
| | | | llvm-svn: 93078
* revert 91891, a workaround for PR5514.Chris Lattner2010-01-091-2/+1
| | | | llvm-svn: 93077
* implement codegen support for preinc as an lvalue, PR5514.Chris Lattner2010-01-091-2/+10
| | | | llvm-svn: 93076
* refactor pre/postinc logic into CGF and require the caller to pass in theChris Lattner2010-01-094-129/+139
| | | | | | lvalue to poke, no functionality change. llvm-svn: 93075
* revert r92749, which is just dead code.Chris Lattner2010-01-091-10/+0
| | | | llvm-svn: 93074
* Fix broken diagnostic when returning the address of a stack-allocated array.Ted Kremenek2010-01-091-3/+11
| | | | llvm-svn: 93071
* Simplify with StringSwitch.Benjamin Kramer2010-01-091-28/+12
| | | | llvm-svn: 93064
* Hopefully unbreak build with g++ >= 4.3.Benjamin Kramer2010-01-091-0/+1
| | | | llvm-svn: 93060
* Use MacroBuilder for TargetDefines instead of std::vector.Benjamin Kramer2010-01-092-236/+218
| | | | llvm-svn: 93058
* Move MacroBuilder into Frontend/Utils.h and clean it up a bit.Benjamin Kramer2010-01-091-127/+89
| | | | llvm-svn: 93057
* Rework InitPreprocessor to use a MacroBuilder class instead of pushing aroundBenjamin Kramer2010-01-091-248/+208
| | | | | | | | | | | | std::vectors. - MacroBuilder wraps a raw_ostream so it can easily write to any buffer supported by raw_ostream. - MacroBuilder's method take Twines for easy string concatenation (this was done with sprintf and temporary buffers before). - Targets still use std::vector as they don't have access to the builder. llvm-svn: 93051
* Switch UndefineBuiltinMacro() over to using StringRefKovarththanan Rajaratnam2010-01-091-2/+2
| | | | llvm-svn: 93049
* Switch DefineBuiltinMacro() over to using StringRefKovarththanan Rajaratnam2010-01-091-8/+12
| | | | llvm-svn: 93048
* When binding an rvalue to a reference, create a temporary object. Use Zhongxing Xu2010-01-093-6/+39
| | | | | | | | CXXObjectRegion to represent it. In Environment, lookup a literal expression before make up a value for it. llvm-svn: 93047
* improve support for dragonfly, patch by Sascha Wildner!Chris Lattner2010-01-092-3/+5
| | | | llvm-svn: 93044
* Fix handling in GRExprEngine of 'default' branch in switch statementsTed Kremenek2010-01-081-5/+12
| | | | | | | | | when the default case is winnowed down to be infeasible. When all cases were ruled out (and the analysis state for the default case would be infeasible) we would still consider the default case possible. This fixes PR 5969. llvm-svn: 93017
* Change the printing of OR_Deleted overload results to print all the candidates,John McCall2010-01-085-53/+108
| | | | | | | | | | | | | | | not just the viable ones. This is reasonable because the most common use of deleted functions is to exclude some implicit conversion during calls; users therefore will want to figure out why some other options were excluded. Started sorting overload results. Right now it just sorts by location in the translation unit (after putting viable functions first), but we can do better than that. Changed bool OnlyViable parameter to PrintOverloadCandidates to an enum for better self-documentation. llvm-svn: 92990
* Use -fno-math-errno by default, and remove the IsMathErrnoDefaultDan Gohman2010-01-084-17/+7
| | | | | | targethook, which is no longer being used. This fixes PR5971. llvm-svn: 92987
* clang ObjC rewriter: generated code used in "for (x in y)" loop uses Fariborz Jahanian2010-01-081-2/+6
| | | | | | incorrect cast, causing compile error (fixes radar 7342867). llvm-svn: 92986
* Reorganize PrintOverloadCandidates. No functionality change.John McCall2010-01-081-113/+144
| | | | llvm-svn: 92979
* Fix for PR5967: Make const-marking for LLVM globals correct for cases requiringEli Friedman2010-01-084-14/+42
| | | | | | | run-time initialization, and emit run-time initializers aggresively to avoid ordering issues with deferred globals. llvm-svn: 92976
* Improve the fix-its for -Wparentheses to ensure that the fix-itDouglas Gregor2010-01-081-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | suggestions follow recovery. Additionally, add a note to these diagnostics which suggests a fix-it for changing the behavior to what the user probably meant. Examples: t.cpp:2:9: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses] if (i & j == k) { ^~~~~~~~ ( ) t.cpp:2:9: note: place parentheses around the & expression to evaluate it first if (i & j == k) { ^ ( ) t.cpp:14:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if (i = f()) { ~~^~~~~ ( ) t.cpp:14:9: note: use '==' to turn this assignment into an equality comparison if (i = f()) { ^ == llvm-svn: 92975
* Export a public symbol for classes with the GNU runtime. David Chisnall2010-01-081-5/+16
| | | | llvm-svn: 92973
* Add an "implicit" bit to CXXThisExpr, so that we can trackDouglas Gregor2010-01-074-10/+25
| | | | | | | implicitness without losing track of the (logical or actual) location where "this" would occur in the source. llvm-svn: 92958
* Fixes a bug where we were rewriting two definitions ofFariborz Jahanian2010-01-071-1/+2
| | | | | | _objc_method (part of radar 7490408). llvm-svn: 92957
* Fixes a bug in my last patch (related to radar 7490331).Fariborz Jahanian2010-01-071-1/+1
| | | | llvm-svn: 92952
* When parsing an identifier as an expression in C++, only try to annotate itJohn McCall2010-01-071-3/+11
| | | | | | | | | | as a type or scope token if the next token requires it. This eliminates a lot of redundant lookups in C++, but there's room for improvement; a better solution would do a single lookup whose kind and results would be passed through the parser. llvm-svn: 92930
* Avoid error when convering a pointer to integer in Fariborz Jahanian2010-01-071-1/+1
| | | | | | rewriting. llvm-svn: 92925
* Fix rewriting of ivars. Fixes radar 7490331.Fariborz Jahanian2010-01-071-2/+3
| | | | llvm-svn: 92924
* Convert from char pointer to char arrayKovarththanan Rajaratnam2010-01-071-6/+6
| | | | llvm-svn: 92923
* Fix typo: rename Rewriter::getRewritenText() -> Rewriter::getRewrittenText().Ted Kremenek2010-01-072-3/+3
| | | | llvm-svn: 92922
* Tigthen scope of local char arrayKovarththanan Rajaratnam2010-01-071-1/+1
| | | | llvm-svn: 92917
* fix PR5869: mangle static symbols like gcc does to make it easier to diff ↵Nuno Lopes2010-01-071-1/+4
| | | | | | symbol tables llvm-svn: 92911
* Improve the lead diagnostic for C++ object subscript expressions withJohn McCall2010-01-071-13/+19
| | | | | | | | | no viable overloads. Use a different message when the class provides no operator[] overloads at all; use it for operator(), too. Partially addresses PR 5900. llvm-svn: 92894
* Change ObjCContainerDecl to contain the entire range for the '@end'Ted Kremenek2010-01-076-24/+37
| | | | | | | | | | | piece of the declaration. The '@' and the 'end' are separate tokens, and require two SourceLocations to accurately track. This change was motivated because ObjCContainerDecl::getSourceRange() would previously not return the entire range of the declaration (the 'end' would be left off). llvm-svn: 92891
OpenPOWER on IntegriCloud