summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Recycle memory for GRStates that are never referencedTed Kremenek2011-01-252-4/+27
| | | | | | | | by ExplodedNodes. This leads to about a 4-8% reduction in memory footprint when analyzing functions in sqlite3. llvm-svn: 124214
* Teach -Wuninitialized-experimental to also warnTed Kremenek2011-01-252-18/+48
| | | | | | about uninitialized variables captured by blocks. llvm-svn: 124213
* Tweak wording of static analyzer diagnosticTed Kremenek2011-01-251-3/+3
| | | | | | | for a block capturing the value of an uninitialized variable. llvm-svn: 124212
* Teach TemplateSpecializationTypeLoc::initializeArgLocs() to actuallyDouglas Gregor2011-01-255-14/+54
| | | | | | | | | generate meaningful [*] template argument location information. [*] Well, as meaningful as possible, given that this entire code path is a hack for when we've lost type-source information. llvm-svn: 124211
* Don't insert class templates into the DynamicClasses vector.Anders Carlsson2011-01-252-1/+3
| | | | llvm-svn: 124201
* Be a bit more defensive about setting the temporary base locationDouglas Gregor2011-01-251-1/+3
| | | | | | | | during template instantiation. This code needs to eventually die, but this little tweak fixes PR8629, where bad location information slipped through to the location of a class template instantiation. llvm-svn: 124199
* Implement the rvalue-reference deduction transformation (from T&& ->Douglas Gregor2011-01-251-6/+33
| | | | | | | | T) when taking the address of an overloaded function or matching a specialization to a template (C++0x [temp.deduct.type]p10). Fixes PR9044. llvm-svn: 124197
* When performing a glvalue-to-xvalue static_cast that involves aDouglas Gregor2011-01-251-6/+17
| | | | | | | derived-to-base conversion, set the cast kind and base path appropriately. llvm-svn: 124189
* Add the ns_consumes_self, ns_consumed, cf_consumed, and ns_returns_autoreleasedJohn McCall2011-01-252-15/+93
| | | | | | attributes for the benefit of the static analyzer. llvm-svn: 124174
* Downgrade the error about rvalue references to an extension warningDouglas Gregor2011-01-252-3/+3
| | | | | | | | and turn on __has_feature(cxx_rvalue_references). The core rvalue references proposal seems to be fully implemented now, pending lots more testing. llvm-svn: 124169
* [analyzer] Handle the dot syntax for properties in the ExprEngine.Argyrios Kyrtzidis2011-01-256-11/+80
| | | | | | | | | | We translate property accesses to obj-c messages by simulating "loads" or "stores" to properties using a pseudo-location SVal kind (ObjCPropRef). Checkers can now reason about obj-c messages for both explicit message expressions and implicit messages due to property accesses. llvm-svn: 124161
* [analyzer] Introduce ExprEngine::VisitObjCMessage for handling general ↵Argyrios Kyrtzidis2011-01-251-12/+19
| | | | | | | | ObjCMessages (both message expressions and property access) and use it in ExprEngine::VisitObjCMessageExpr. llvm-svn: 124160
* [analyzer] Introduce ObjCMessage which represents both explicit ObjC message ↵Argyrios Kyrtzidis2011-01-258-171/+289
| | | | | | | | | | expressions and implicit messages that are sent for handling properties in dot syntax. Replace all direct uses of ObjCMessageExpr in the checkers and checker interface with ObjCMessage. llvm-svn: 124159
* In a ObjCMessageExpr with the super class as receiver, 'super' is actually a ↵Argyrios Kyrtzidis2011-01-251-3/+3
| | | | | | ObjCInterfaceType. llvm-svn: 124158
* [analyzer] Simplify GetReceiverType function in ↵Argyrios Kyrtzidis2011-01-251-18/+2
| | | | | | BasicObjCFoundationChecks.cpp; no functionality change. llvm-svn: 124157
* Revert r124146 for now. It appears to be failing on a few platforms.Eric Christopher2011-01-242-50/+23
| | | | llvm-svn: 124153
* pre/post increase/decrease for AltiVec vectorsAnton Yartsev2011-01-242-23/+50
| | | | llvm-svn: 124146
* Enhance the diagnostic for referring to a typedef with an elaborated name to beNick Lewycky2011-01-241-3/+22
| | | | | | as useful in a templated context as it is without templates. Fixes PR8755! llvm-svn: 124136
* Disallow function template partial specializations, from HansDouglas Gregor2011-01-241-2/+4
| | | | | | Wennborg! Fixes PR8295. llvm-svn: 124135
* Improve the printing of C++ construction expressions, from Yuri Gribov!Douglas Gregor2011-01-241-7/+8
| | | | llvm-svn: 124123
* Use attributes for all the override control specifiers.Anders Carlsson2011-01-249-28/+15
| | | | llvm-svn: 124122
* Re-instate r123977/r123978, my updates of the reference-bindingDouglas Gregor2011-01-242-75/+58
| | | | | | | | | | | | | | | | implementation used by overload resolution to support rvalue references. The original commits caused PR9026 and some hard-to-reproduce self-host breakage. The only (crucial!) difference between this commit and the previous commits is that we now properly check the SuppressUserConversions flag before attempting to perform a second user-defined conversion in reference binding, breaking the infinite recursion chain of user-defined conversions. Rvalue references should be working a bit better now. llvm-svn: 124121
* Check whether DependentScopeDeclRefExpr's NestedNameSpecifier exists before ↵Axel Naumann2011-01-241-1/+2
| | | | | | accessing it, both for consistency (see StmtPrinter::VisitDeclRefExpr()) and for other use cases of dependent types. llvm-svn: 124119
* When building a type info struct for EH, we always want it to have ↵Anders Carlsson2011-01-241-0/+6
| | | | | | linkonce_odr linkage. llvm-svn: 124096
* Change CodeGenModule::getVTableLinkage to be a non-static member function.Anders Carlsson2011-01-242-5/+5
| | | | llvm-svn: 124095
* "Name" a bool parameter.Anders Carlsson2011-01-241-3/+5
| | | | llvm-svn: 124094
* Use CharUnits for the offset amount of RegionRawOffset.Ken Dyck2011-01-244-6/+6
| | | | llvm-svn: 124093
* Remove private toCharUnits() helper method, replacing with calls toKen Dyck2011-01-241-17/+10
| | | | | | ASTContext::toCharUnitsFromBits(). llvm-svn: 124092
* Mark VTables and RTTI data linkonce_odr instead of weak_odr, with the ↵Anders Carlsson2011-01-242-9/+13
| | | | | | | | exception of explicit template instantiations, which have to be weak_odr. This fixes PR6996. llvm-svn: 124089
* Get rid of [[hiding]], [[override]] and [[base_check]].Anders Carlsson2011-01-234-132/+1
| | | | llvm-svn: 124087
* Get rid of the [[final]] C++0x attribute.Anders Carlsson2011-01-235-57/+17
| | | | llvm-svn: 124083
* Teach -Wuninitialized-experimental about sizeof().Ted Kremenek2011-01-231-0/+10
| | | | llvm-svn: 124076
* Tweak diagnostic:Ted Kremenek2011-01-231-1/+2
| | | | | | | | | | | | | error: no super class declared in @interface for 'XXX' to be: error: 'X' cannot use 'super' because it is a root class The latter explains what the user actually did wrong. Fixes: <rdar://problem/8904409> llvm-svn: 124074
* Null initialize a few variables flagged byTed Kremenek2011-01-233-6/+5
| | | | | | | | | | clang's -Wuninitialized-experimental warning. While these don't look like real bugs, clang's -Wuninitialized-experimental analysis is stricter than GCC's, and these fixes have the benefit of being general nice cleanups. llvm-svn: 124072
* Accept the C++0x override control keywords as an extension in C++98. This is ↵Anders Carlsson2011-01-221-2/+10
| | | | | | OK since the new syntax is unambiguous and can't be confused with C++98 syntax. If anyone disagrees, please shout! llvm-svn: 124048
* Implement [class.derived]p8.Anders Carlsson2011-01-221-0/+20
| | | | llvm-svn: 124047
* Serialize and deserialize IsMarkedFinal/IsMarkedExplicit.Anders Carlsson2011-01-222-0/+5
| | | | llvm-svn: 124041
* Mark classes final and/or explicit during class template instantiation.Anders Carlsson2011-01-221-0/+3
| | | | llvm-svn: 124040
* Mark classes as final or explicit. Diagnose when a class marked 'final' is ↵Anders Carlsson2011-01-223-1/+19
| | | | | | used as a base. llvm-svn: 124039
* Add final/explicit getters and setters to CXXRecordDecl.Anders Carlsson2011-01-221-0/+1
| | | | llvm-svn: 124037
* Parse class-virt-specifier-seqs.Anders Carlsson2011-01-222-16/+73
| | | | llvm-svn: 124036
* More work on ClassVirtSpecifiers.Anders Carlsson2011-01-222-3/+32
| | | | llvm-svn: 124035
* revert r123977 and r123978 to fix PR9026.Rafael Espindola2011-01-222-59/+76
| | | | llvm-svn: 124033
* Start stubbing out a ClassVirtSpecifiers class.Anders Carlsson2011-01-221-9/+8
| | | | llvm-svn: 124032
* A member function template cannot be virtual.Anders Carlsson2011-01-221-1/+8
| | | | llvm-svn: 124031
* Use a FunctionType::get overload that doesn't require an empty vector.Benjamin Kramer2011-01-221-5/+2
| | | | llvm-svn: 124029
* Improve our parse recovery on 'case blah;' and 'default;'.John McCall2011-01-221-6/+18
| | | | llvm-svn: 124025
* Send code generation for xvalues down the same path as lvaluesDouglas Gregor2011-01-222-2/+2
| | | | llvm-svn: 124023
* Debug info generation for rvalue referencesDouglas Gregor2011-01-222-6/+10
| | | | llvm-svn: 124020
* Update const_cast semantics for rvalue references. Add tests forDouglas Gregor2011-01-221-5/+4
| | | | | | reinterpret_cast and const_cast using rvalue references. llvm-svn: 124007
OpenPOWER on IntegriCloud