aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-12-23Enhance pretty-printing for nonloc::ConcreteIntTed Kremenek
to also include signedness and bitwidth of the underlying integer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122466 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-23Implement the part of C++0x [temp.arg.explicit]p3 that pertains toDouglas Gregor
parameter packs. In particular, a parameter pack not otherwise deduced is deduced to an empty parameter pack. The C++0x wording here is a bit unfortunate; this should really only apply to function templates, and it mentions "trailing" parameter packs, which doesn't really make sense in the context of function templates. Will file a core issue separately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122463 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-23Implement the rest of C++0x [temp.deduct.type]p9, which specifies thatDouglas Gregor
the presence of a pack expansion anywhere except at the end of a template-argument-list causes the entire template-argument-list to be a non-deduced context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122461 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-23Change all self assignments X=X to (void)X, so that we can turn on aJeffrey Yasskin
new gcc warning that complains on self-assignments and self-initializations. Fix one bug found by the warning, in which one clang::OverloadCandidate constructor failed to initialize its FunctionTemplate member. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Be paranoid about NULL size expressions in dependently-sized array typesDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122454 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Unify the consistency checking for deduced template arguments into aDouglas Gregor
single routine. Extend that routine to handle consistency checking for template argument packs, so that we can compare the deduced packs for template parameter packs across different pack expansions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122452 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22build: Use CLANG_NO_RUNTIME=1 specifically, not just any definition.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122449 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Subsequent attempt to fix linux build.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122442 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Implement template argument deduction for pack expansions whoseDouglas Gregor
pattern is a template argument, which involves repeatedly deducing template arguments using the pattern of the pack expansion, then bundling the resulting deductions into an argument pack. We can now handle a variety of simple list-handling metaprograms using variadic templates. See, e.g., the new "count" metaprogram. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122439 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Apparently I'm on a mission to break as many builds as possible.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122436 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Forgot to move the files in CMakeLists.txt.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122433 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Add GR/Checkers subdir for CMake build.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122432 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Move AnalysisConsumer.cpp and ExprEngine.cpp into the Checkers subdir ↵Argyrios Kyrtzidis
temporarily to avoid cyclic dependency between the libraries and fix the linux build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122431 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Complain on missing property getter method onlyFariborz Jahanian
if property-dot expression is decidedly an rvalue. // rdar://8155806. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122430 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22When performing template argument deduction where the argument is aDouglas Gregor
dependent template specialization type, the number of template arguments need not match precisely. Rather than checking the number of arguments eagerly (which does not consider argument packs), let the deduction routine for template argument lists cope with too many/too few arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122425 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22[analyzer] Refactoring: Drop the 'GR' prefix.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122424 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22[analyzer] Refactoring: Move stuff into namespace 'GR'.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122423 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22[analyzer] Refactoring: Move checkers into lib/GR/Checkers and their own ↵Argyrios Kyrtzidis
library, libclangGRCheckers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122422 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22[analyzer] Refactoring: lib/Checker -> lib/GR and libclangChecker -> ↵Argyrios Kyrtzidis
libclangGRCore git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122421 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22[analyzer] Refactoring: include/clang/Checker -> include/clang/GRArgyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122420 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Implicitly expand argument packs when performing template argumentDouglas Gregor
deduction. Unify all of the looping over template arguments for deduction purposes into a single place, where argument pack expansion occurs; this is also the hook for deducing from pack expansions, which itself is not yet implemented. For now, at least we can handle a basic "count" metafunction written with variadics. See the new test for the formulation that works. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122418 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22If the unary operator is prefix and an lvalue (in C++), bindZhongxing Xu
the location (l-value) to it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122396 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Introduced raw_identifier token kind.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122394 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22The base type is not always pointer type. We may cast to a base reference.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122393 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Always blast through no-op casts when getting expr SVals.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122390 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22After inlining the CXXConstructExpr, bind the temporary object region to it.Zhongxing Xu
This change is necessary when the variable is a const reference and we need the l-value of the construct expr. After that, when binding the variable, recover the lazy compound value when the variable is not a reference. In Environment, use the value of a no-op cast expression when it has one. Otherwise, blast-through it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122388 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-22Redesign the way anonymous fields are handled in designated-initializers.Francois Pichet
Previously designated anonymous fields were found via name lookup. This redesign uses the fact that an IndirectFieldDecl declaration will always follow an anonymous implicit field to remove the special case of name lookup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122387 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Tweak the checking of class template partial specialization argumentsDouglas Gregor
to cope with parameter packs. This is a band-aid I will be revisiting this section when I implement declaration matching semantics for variadic templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122369 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Add a hack to work around the lack of proper type-source info in a pack ↵Douglas Gregor
expansion TypeLoc git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122367 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Add some const qualifiersDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122365 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21For member pointer conversions potentially involving derived-to-baseDouglas Gregor
conversions, make sure that the (possibly) derived type is complete before looking for base classes. Finishes the fix for PR8801. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122363 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21When searching for the instantiation of a locally-scoped tagDouglas Gregor
declaration, also look for an instantiation of its previous declarations. Fixes PR8801. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122361 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21In C++, if the user redeclares a builtin function with a type that isDouglas Gregor
inconsistent with the type that the builtin *should* have, forget about the builtin altogether: we don't want subsequence analyses, CodeGen, etc., to think that we have a proper builtin function. C is protected from errors here because it allows one to use a library builtin without having a declaration, and detects inconsistent (re-)declarations of builtins during declaration merging. C++ was unprotected, and therefore would crash. Fixes PR8839. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122351 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21When determining which preprocessed entities to traverse in libclang,Douglas Gregor
take into account the region of interest. Otherwise, we may fail to traverse some important preprocessed entity cursors. Fixes <rdar://problem/8554072>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122350 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Fix test to be platform-agnosticDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122348 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Fix a major inconsistency in the representation of Objective-CDouglas Gregor
classes, categories, protocols, and class extensions, where the methods and properties of these entities would be inserted into the DeclContext in an ordering that doesn't necessarily reflect source order. The culprits were Sema::ActOnMethodDeclaration(), which did not perform the insertion of the just-created method declaration into the DeclContext for these Objective-C entities, and Sema::ActOnAtEnd(), which inserted all method declarations at the *end* of the DeclContext. With this fix in hand, clean up the code-completion actions for property setters/getters that worked around this brokenness in the AST. Fixes <rdar://problem/8062781>, where this problem manifested as poor token-annotation information, but this would have struck again in many other places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122347 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Replace all uses of PathV1::makeAbsolute with PathV2::fs::make_absolute.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122340 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Fix spelling.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122339 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Implement BlockDecl::getSourceRange(). The bogus source-rangeDouglas Gregor
information caused token-annotation to fail in funny ways. Fixes <rdar://problem/8595386>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122338 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Add test for C++ [temp.friend]p8, which bans partial specializations from ↵Douglas Gregor
being friends git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122335 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21A class template partial specialization cannot be a friend. Fixes PR8649.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122325 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Teach clang_getCursorSemanticParent() andDouglas Gregor
clang_getCursorLexicalParent() to cope with class and function templates, along with the parent of the translation unit. Fixes PR8761 and PR8766. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122324 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21When checking a using declaration, make sure that the context we'reDouglas Gregor
looking in is complete. Fixes PR8756. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122323 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Don't try to compute the value of a value-dependent expression whenDouglas Gregor
checking trivial comparisons. Fixes PR8795. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122322 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Initialize LangOptions::MSCVersion. Thanks to Csaba Raduly for noting the ↵Douglas Gregor
omission git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122318 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Add back the late-specified return type paperDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122317 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Updates to the C++ status page for C++0x features, from Michael PriceDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122315 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Add IndirectField case in DeclContextPrinter::PrintDeclContext.Francois Pichet
Fix PR8832. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122311 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21add missing newlines at end of file.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122309 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Implement instantiation of pack expansions whose pattern is a type-idDouglas Gregor
in an exception specification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122297 91177308-0d34-0410-b5e6-96231b3b80d8