summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Add "template" keyword at strategic position to fixGabor Greif2010-02-251-1/+2
| | | | | | | | | | | | | | | | | compilation using g++ v3.4. I'll watch the buildbots and back out if necessary. Feel free to do the same if something breaks. Without this patch I get (on g++ 3.4.6) following error: In file included from clang/lib/Sema/SemaTemplate.cpp:14: clang/lib/Sema/TreeTransform.h: In member function `clang::ASTOwningResult<&clang::ActionBase::DeleteExpr> clang::TreeTransform<Derived>::RebuildCXXPseudoDestructorExpr(clang::ASTOwningResult<&clang::ActionBase::DeleteExpr>, clang::SourceLocation, bool, clang::NestedNameSpecifier*, clang::SourceRange, clang::TypeSourceInfo*, clang::SourceLocation, clang::SourceLocation, clang::PseudoDestructorTypeStorage)': clang/lib/Sema/TreeTransform.h:5784: error: expected primary-expression before '>' token clang/lib/Sema/TreeTransform.h:5784: error: expected primary-expression before ')' token make[4]: *** [clang/lib/Sema/Release/SemaTemplate.o] Error 1 llvm-svn: 97136
* When comparing two method overload candidates during overload diagnostics,John McCall2010-02-251-1/+2
| | | | | | | | | | | skip the object argument conversion if either of the candidates didn't initialize it. Fixes PR6421, which is such a very straightforward extension of PR6398 that I should have worked it into the last test case (and therefore caught it then). Ah well. llvm-svn: 97135
* Fix a really trivial crasher and begin fleshing out one of the namespace testChandler Carruth2010-02-251-4/+7
| | | | | | cases. llvm-svn: 97134
* Move the GenerateCallExitNode logic completely into GREndPathNodeBuilder.Zhongxing Xu2010-02-252-16/+7
| | | | llvm-svn: 97131
* Move the dead bindings removal logic from CallInliner to ↵Zhongxing Xu2010-02-253-15/+19
| | | | | | GRExprEngine::ProcessCallExit(). llvm-svn: 97129
* Add a new conversion rank to classify conversions between complex and scalarChandler Carruth2010-02-252-14/+15
| | | | | | | | types. Rank these conversions below other conversions. This allows overload resolution when the only distinction is between a complex and scalar type. It also brings the complex overload resolutin in line with GCC's. llvm-svn: 97128
* Add comments.Zhongxing Xu2010-02-251-1/+3
| | | | llvm-svn: 97127
* Call inliner improvements:Zhongxing Xu2010-02-253-50/+119
| | | | | | | | | | | | | | This patch implements the CallEnter/CallExit idea of Ted. Add two interfaces to GRSubEngine: ProcessCallEnter, ProcessCallExit. The CallEnter program point uses caller's location context. The CallExit program point uses callee's location context. CallEnter is built by GRStmtNodeBuilder. CallExit is built by GREndPathNodeBuilder. llvm-svn: 97122
* Add MacOSXAPIChecker, a meta checker to include various precondition checks ↵Ted Kremenek2010-02-254-0/+144
| | | | | | | | | | | | for calls to various MacOS X functions. The checks in BasicObjCFoundationChecks.cpp will gradually be migrated here. As a first check, check that when 'dispatch_once()' is passed a predicate value that has non-local storage. llvm-svn: 97116
* When generating error node, check to see if we already cached out.Ted Kremenek2010-02-251-0/+3
| | | | llvm-svn: 97115
* Targets (like pic16) may have mangled the name of global variables, Sanjiv Gupta2010-02-251-1/+1
| | | | | | so get the name from Var rather than the original decl. llvm-svn: 97114
* Update CMake makefilesDouglas Gregor2010-02-251-1/+1
| | | | llvm-svn: 97113
* Restore the invariant that a nested-name-specifier can only containDouglas Gregor2010-02-258-84/+32
| | | | | | | | | class types, dependent types, and namespaces. I had previously weakened this invariant while working on parsing pseudo-destructor expressions, but recent work in that area has made these changes unnecessary. llvm-svn: 97112
* Frontend: Add CodeGenAction::takeModule().Daniel Dunbar2010-02-251-8/+26
| | | | llvm-svn: 97111
* Frontend: Pull CodeGenAction out more, and eliminate CreateBackendConsumer.Daniel Dunbar2010-02-252-55/+54
| | | | | | | | | | This is the way I would like to move the frontend function towards -- distinct pieces of functionality should be exposed only via FrontendAction implementations which have clean and relatively-stable APIs. This also isolates the surface area in clang which depends on LLVM CodeGen. llvm-svn: 97110
* Remove dead code.Anders Carlsson2010-02-251-176/+0
| | | | llvm-svn: 97109
* Move the vcall and vbase offset layout code out into its own class.Anders Carlsson2010-02-251-8/+224
| | | | llvm-svn: 97107
* Driver: Allow driver title (for --help) to be overridden by clients.Daniel Dunbar2010-02-251-2/+3
| | | | llvm-svn: 97106
* Enhance the unused ivar checker to not consider an ivar to be accidentally ↵Ted Kremenek2010-02-252-16/+15
| | | | | | | | unused when it is explicitly marked as unused via __attribute__((unused)). llvm-svn: 97104
* Allow __attribute__((unused)) to be applied to ObjC ivars.Ted Kremenek2010-02-251-1/+1
| | | | llvm-svn: 97103
* Add TextDiagnosticPrinter::setPrefix, for adding a string to prefix diagnosticDaniel Dunbar2010-02-251-1/+4
| | | | | | messages with. llvm-svn: 97101
* Remove some oogly code made dead by the pseudo-destructorDouglas Gregor2010-02-251-44/+0
| | | | | | instantiation changes. llvm-svn: 97095
* Use CXXPseudoDestructorExpr as the stored representation for dependentDouglas Gregor2010-02-255-210/+135
| | | | | | | | | | | | | | | | expressions that look like pseudo-destructors, e.g., p->T::~T() where p has dependent type. At template instantiate time, we determine whether we actually have a pseudo-destructor or a member access, and funnel down to the appropriate routine in Sema. Fixes PR6380. llvm-svn: 97092
* Catch more uses of uninitialized implicit conversion sequences.John McCall2010-02-254-50/+89
| | | | | | | When diagnosing bad conversions, skip the conversion for ignored object arguments. Fixes PR 6398. llvm-svn: 97090
* Add UnixAPIChecker, a meta checker to include various precondition checks ↵Ted Kremenek2010-02-254-0/+154
| | | | | | | | | | | for calls to various unix/posix functions, e.g. 'open()'. As a first check, check that when 'open()' is passed 'O_CREAT' that it has a third argument. llvm-svn: 97086
* Remove stray #include.Ted Kremenek2010-02-251-1/+0
| | | | llvm-svn: 97085
* Remove #include.Ted Kremenek2010-02-251-1/+0
| | | | llvm-svn: 97084
* Divide list of registration functions in API and foundational checks. Also ↵Ted Kremenek2010-02-251-2/+6
| | | | | | trim whitespace. llvm-svn: 97083
* Sort list of checker registration functions.Ted Kremenek2010-02-251-12/+12
| | | | llvm-svn: 97082
* Keep track of the location of the '~' in a pseudo-destructor expression.Douglas Gregor2010-02-244-3/+10
| | | | llvm-svn: 97080
* Retain complete source information for the type after the '~' in aDouglas Gregor2010-02-244-44/+87
| | | | | | | | | | | 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
* Implement nasty rewriting of nested blocks when innerFariborz Jahanian2010-02-241-4/+76
| | | | | | | 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
* Retain source information for the "type-name ::" in aDouglas Gregor2010-02-242-3/+7
| | | | | | | | pseudo-destructor expression such as p->T::~T() llvm-svn: 97060
* ActOnPseudoDestructorExpr now performs all semantic analysis forDouglas Gregor2010-02-245-60/+286
| | | | | | | | | | | | | | | | 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-245-24/+308
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-241-7/+29
| | | | | | 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-241-2/+9
| | | | | | Fixes PR6373. llvm-svn: 97037
* Canonicalize parameter and return types before computing ABI info. EliminatesJohn McCall2010-02-244-71/+78
| | | | | | | | | | | 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
* When we encounter a function-specific attribute in a declaration specifier,Charles Davis2010-02-241-5/+9
| | | | | | | 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-241-1/+1
| | | | | | analysis needs this. llvm-svn: 97014
* Fix rewriting of a method when return type isFariborz Jahanian2010-02-241-0/+4
| | | | | | a block pointer type. Fixes radar 7682149. llvm-svn: 97008
* Add support for '%C' and '%S' printf conversion specifiers.Ted Kremenek2010-02-241-22/+35
| | | | llvm-svn: 97005
* More Sema check for ivars in class continuation.Fariborz Jahanian2010-02-233-15/+32
| | | | llvm-svn: 97002
OpenPOWER on IntegriCloud