summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* Retain complete source information for the type after the '~' in aDouglas Gregor2010-02-245-59/+98
| | | | | | | | | | | CXXPseudoDestructorExpr. Update template instantiation for pseudo-destructor expressions to use this source information and to make use of Sema::BuildPseudoDestructorExpr when the base expression is dependent or refers to a scalar type. llvm-svn: 97079
* Make sure that we finish the DeclSpec when parsing a C++Douglas Gregor2010-02-241-0/+1
| | | | | | | | type-specifier-seq. Fixes some conditional-jump-on-unitialized-value errors in valgrind. Also counts as attempt #2 at making the MSVC buildbot happy. llvm-svn: 97077
* Make sure that we have type source information for the scope type of aDouglas Gregor2010-02-241-1/+6
| | | | | | pseudo-destructor expression. Attempt #1 at fixing the MSVC buildbot. llvm-svn: 97076
* Added test case for non-objective-c situation inFariborz Jahanian2010-02-241-0/+12
| | | | | | my last patch. llvm-svn: 97075
* Implement nasty rewriting of nested blocks when innerFariborz Jahanian2010-02-242-4/+102
| | | | | | | blocks use variables not used in any of the outer blocks. (Fixes radar 7682149). llvm-svn: 97073
* Split ActOnPseudoDestructorExpr into the part that interprets theDouglas Gregor2010-02-242-86/+158
| | | | | | | | parser's data structures and the part that performs semantic analysis and AST building, in preparation for improved template instantiation of pseudo-destructor expressions. llvm-svn: 97070
* Get rid of 'this' adjustments from the FinalOverriders class since they can ↵Anders Carlsson2010-02-241-34/+0
| | | | | | be different for the same overrider in different parts of the vtable. llvm-svn: 97068
* Improve this adjustment pointer calculation.Anders Carlsson2010-02-241-5/+16
| | | | llvm-svn: 97067
* Make ComputeThisAdjustmentBaseOffset public for now.Anders Carlsson2010-02-241-7/+8
| | | | llvm-svn: 97066
* Add test case for PR6141, which was fixed a few days agoDouglas Gregor2010-02-241-0/+27
| | | | llvm-svn: 97063
* Add test for AST importing of C++ namespaces, missing from a prior commitDouglas Gregor2010-02-243-0/+40
| | | | llvm-svn: 97062
* Add PCH test for C++ namespaces, missing from a previous commitDouglas Gregor2010-02-242-0/+27
| | | | llvm-svn: 97061
* Retain source information for the "type-name ::" in aDouglas Gregor2010-02-243-11/+50
| | | | | | | | pseudo-destructor expression such as p->T::~T() llvm-svn: 97060
* ActOnPseudoDestructorExpr now performs all semantic analysis forDouglas Gregor2010-02-248-64/+312
| | | | | | | | | | | | | | | | pseudo-destructor expressions, and builds the CXXPseudoDestructorExpr node directly. Currently, this only affects pseudo-destructor expressions when they are parsed, but not after template instantiation. That's coming next... Improve parsing of pseudo-destructor-names. When parsing the nested-name-specifier and we hit the sequence of tokens X :: ~, query the actual module to determine whether X is a type-name (in which case the X :: is part of the pseudo-destructor-name but not the nested-name-specifier) or not (in which case the X :: is part of the nested-name-specifier). llvm-svn: 97058
* Fix an iterator-invalidation bug that was causing selfhost errorsJohn McCall2010-02-241-10/+6
| | | | | | | on non-darwin platforms. Fixes PR6411. Test case doesn't reduce, unfortunately. llvm-svn: 97055
* Rework parsing of pseudo-destructor expressions and explicitDouglas Gregor2010-02-247-27/+373
| | | | | | | | | | | | | | | | | | | | | | | | | | | | destructor calls, e.g., p->T::~T We now detect when the member access that we've parsed, e.g., p-> or x. may be a pseudo-destructor expression, either because the type of p or x is a scalar or because it is dependent (and, therefore, may become a scalar at template instantiation time). We then parse the pseudo-destructor grammar specifically: ::[opt] nested-name-specifier[opt] type-name :: ∼ type-name and hand those results to a new action, ActOnPseudoDestructorExpr, which will cope with both dependent member accesses of destructors and with pseudo-destructor expressions. This commit affects the parsing of pseudo-destructors, only; the semantic actions still go through the semantic actions for member access expressions. That will change soon. llvm-svn: 97045
* Generate correct vcall offsets when we have a primary virtual base that is ↵Anders Carlsson2010-02-242-7/+61
| | | | | | not a primary base in the complete class hierarchy. llvm-svn: 97039
* References to const int parameters with ICE default arguments are not ICEs.John McCall2010-02-242-2/+14
| | | | | | Fixes PR6373. llvm-svn: 97037
* Make this test portable to ABIs that use sret.John McCall2010-02-241-1/+1
| | | | llvm-svn: 97035
* Fix test case and convert fully to FileCheck.John McCall2010-02-241-6/+6
| | | | llvm-svn: 97032
* Canonicalize parameter and return types before computing ABI info. EliminatesJohn McCall2010-02-246-72/+91
| | | | | | | | | | | a common source of oddities and, in theory, removes some redundant ABI computations. Also fixes a miscompile I introduced yesterday by refactoring some code and causing a slightly different code path to be taken that didn't perform *parameter* type canonicalization, just normal type canonicalization; this in turn caused a bit of ABI code to misfire because it was looking for 'double' or 'float' but received 'const float'. llvm-svn: 97030
* Add comments.Zhongxing Xu2010-02-241-0/+2
| | | | llvm-svn: 97020
* Disable one test case because of the inconsistent results it is giving onTed Kremenek2010-02-241-1/+3
| | | | | | Windows and Mac OS X. Will investigate later. llvm-svn: 97016
* When we encounter a function-specific attribute in a declaration specifier,Charles Davis2010-02-242-5/+13
| | | | | | | apply it only to the function itself, and never to the return type. Fixes part of PR6408. llvm-svn: 97015
* Always add CallExpr as block-level expression. Inline-based interproceduralZhongxing Xu2010-02-243-5/+5
| | | | | | analysis needs this. llvm-svn: 97014
* Correct radar no.Fariborz Jahanian2010-02-241-1/+1
| | | | llvm-svn: 97009
* Fix rewriting of a method when return type isFariborz Jahanian2010-02-242-0/+29
| | | | | | a block pointer type. Fixes radar 7682149. llvm-svn: 97008
* Add support for '%C' and '%S' printf conversion specifiers.Ted Kremenek2010-02-243-25/+56
| | | | llvm-svn: 97005
* More Sema check for ivars in class continuation.Fariborz Jahanian2010-02-234-15/+64
| | | | llvm-svn: 97002
* Emit debug info for VectorType.Devang Patel2010-02-233-2/+35
| | | | llvm-svn: 96999
* fix buildbot failure on windows by slightly trimming test output to ignore ↵Blaine Garst2010-02-231-2/+2
| | | | | | temporary name llvm-svn: 96998
* Add support for the weakref attribute. We still produce "alias weak" as ↵Rafael Espindola2010-02-2311-13/+144
| | | | | | llvm-gcc does, but are more strict on what uses of weakref we accept. llvm-svn: 96992
* Unconditionally support block introspection data in a new field at the endBlaine Garst2010-02-237-59/+140
| | | | | | | | | | | | | | | of the block descriptor field. This field is the ObjC style @encode signature of the implementation function, and was to this point conditionally provided in the block literal data structure. That provisional support is removed. Additionally, eliminate unused enumerations for the block literal flags field. The first shipping ABI unconditionally set (1<<29) but this bit is unused by the runtime, so the second ABI will unconditionally have (1<<30) set so that the runtime can in fact distinguish whether the additional data is present or not. llvm-svn: 96989
* Fixes a rewriting of qualified-id type which exposed a biggerFariborz Jahanian2010-02-232-5/+21
| | | | | | rewriting problem. Fixes radar 7680953. llvm-svn: 96987
* Dead emit dead store warnings when assigning nil to an ObjC objectTed Kremenek2010-02-232-1/+9
| | | | | | | pointer (for defensive programming). This matches the behavior with assigning NULL to a regular pointer. Fixes <rdar://problem/7631278>. llvm-svn: 96985
* Fix bogus diagnostic format string.Daniel Dunbar2010-02-233-3/+3
| | | | llvm-svn: 96978
* Fix another crash on invalid code. In this case, handle ObjC categories ↵Ted Kremenek2010-02-232-10/+23
| | | | | | | | (with no names) that refer to an undefined class. llvm-svn: 96976
* Don't assert on compound assignment operators that operate in FP types whenJohn McCall2010-02-232-3/+23
| | | | | | the result is integral. Fixes <rdar://problem/7676608>. llvm-svn: 96970
* A test case for property synthesis using ivar in class extensions.Fariborz Jahanian2010-02-231-0/+36
| | | | llvm-svn: 96968
* Make previous fix handle a few more edge cases.Eli Friedman2010-02-231-3/+3
| | | | llvm-svn: 96962
* PR6400: Handle an extreme edge case in mangling correctly.Eli Friedman2010-02-232-0/+9
| | | | llvm-svn: 96961
* PR6386: Fix a recent regression in IRGen of cast-to-union constructs.Eli Friedman2010-02-232-1/+13
| | | | llvm-svn: 96958
* Retain attributes for K&R style parameter declarations.Richard Pennington2010-02-232-4/+16
| | | | llvm-svn: 96941
* Add test case for <rdar://problem/7242010>, which appears to have been fixedTed Kremenek2010-02-231-0/+21
| | | | | | | in the recent changes to RegionStore::InvalidateRegions(). Note that we are still not yet modeling 'memcpy()' explicitly. llvm-svn: 96902
* Implement IsOverriderUsed. This can't be tested yet due to some other bugs :)Anders Carlsson2010-02-231-1/+46
| | | | llvm-svn: 96897
* When comparing two calling conventions after redeclaring a function, compareCharles Davis2010-02-232-1/+6
| | | | | | | the canonical calling conventions instead of comparing the raw calling conventions directly. Fixes PR6361. llvm-svn: 96895
* Move the rest of the unreachable code analysis from libSemaTed Kremenek2010-02-233-217/+270
| | | | | | to libAnalysis (with only the error reporting in libSema). llvm-svn: 96893
* Simplify check for basic block with a CXXTryStmt terminator.Ted Kremenek2010-02-231-3/+2
| | | | llvm-svn: 96892
* When a reference to a field of a struct/union/class is passed to theCharles Davis2010-02-232-0/+12
| | | | | | | __alignof__ operator, make sure to take into account the packed alignment of the struct/union/class itself. Matches GCC's behavior and fixes PR6362. llvm-svn: 96884
* Stub out IsOverriderUsed.Anders Carlsson2010-02-231-4/+50
| | | | llvm-svn: 96883
OpenPOWER on IntegriCloud