aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2011-01-18Add support for explicit constructor calls in Microsoft mode.Francois Pichet
For example: class A{ public: A& operator=(const A& that) { if (this != &that) { this->A::~A(); this->A::A(that); // <=== explicit constructor call. } return *this; } }; More work will be needed to support an explicit call to a template constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123735 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-18Correctly enable test/Sema/unit-variables.c,Ted Kremenek
thus identifying a minor logical flaw in UninitializedValuesV2.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123734 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-18Teach UninitializedValuesV2 about "int x = x" andTed Kremenek
also properly handle confluence of loops. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123733 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-18Introduce the notion of a "minimal" import of ASTs, to better support LLDB.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123723 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-18Replace calls to CharUnits::fromQuantity() with ones to Ken Dyck
ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123720 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-18Fix warnings found by gcc-4.6, from -Wunused-but-set-variable andJeffrey Yasskin
-Wint-to-pointer-cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123719 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-18Replace calls to CharUnits::fromQuantity() with onesKen Dyck
ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123715 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17lib/CodeGen/TargetInfo.cpp: Add Win64 calling conversion.NAKAMURA Takumi
FIXME: It would be incompatible to Microsoft's in one point. On mingw64-gcc, {i128} is expanded for args and returned as {rax, rdx}. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123692 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17lib/Basic/Targets.cpp: __builtin_va_list is as same on win64 mingw64!NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123691 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17lib/Basic/Targets.cpp: Fix __declspec() on Mingw-w64.NAKAMURA Takumi
It should be defined as-is. Some headers would detect existence of __declspec and use one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123690 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17lib/Basic/Targets.cpp: Set user_label_prefix on Win64 both mingw and msvc.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123689 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17Simplify.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123682 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17More unnamed_addr.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123681 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17merge strings created byRafael Espindola
const NSConstantString *appKey = @"MyApp"; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123680 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17NetBSD, OpenBSD, and Dragonfly BSD also have arc4random. Patch fromDouglas Gregor
Joerg Sonnenberger! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123669 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17Handle base and member destructors in CheckFallThrough.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123667 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17Convert "#pragma unused(...)" into tokens for the parser.Argyrios Kyrtzidis
This allows us to cache a "#pragma unused" that occurs inside an inline C++ member function. Fixes rdar://8829590&8770988. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123666 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17Add unnamed_addr to the special strings created byRafael Espindola
__builtin___CFStringMakeConstantString This fixes PR8993. A darwin expert might want to check that this is safe. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123658 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17Remove dead code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123612 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17Change ParseOptionalCXX0XVirtSpecifierSeq to take a VirtSpecifiers struct.Anders Carlsson
Enforce C++[class.mem]p8: A virt-specifier-seq shall contain at most one of each virt-specifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123611 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-16Begin work on supporting "N3206: Override control: Eliminating Attributes", fromAnders Carlsson
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm This lands support for parsing virt-specifier-seq after member functions, including the contextual keywords 'final', and 'override'. The keywords are not yet used for anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123606 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-16Fix a bug where the -Wmissing-noreturn would always treat constructors with ↵Anders Carlsson
base or member initializers as noreturn. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123603 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-16Add AnalysisContext::dumpCFG.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123602 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-16Emit an extension diagnostic for C99 designated initializers that appear in ↵Douglas Gregor
C++ code git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123582 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-16Tweak the partial ordering rules for function templates to prefer aDouglas Gregor
non-variadic function template over a variadic one. This matches GCC and the intent of the C++0x wording, in a way that I think is likely to be acceptable to the committee. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123581 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-16improve compatibility with GCC: when generating the ".d" filename to useChris Lattner
and the filename has multiple .'s in it, use the last. For example, "foo.bar.cpp" should produce "foo.bar.d" not "foo.d". Patch by Johan Boule in PR8391 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123576 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15AST/InheritViz: Remove all internal uses of PathV1.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123553 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15Add toCharUnitsInBits() to simplify the many calls to ↵Ken Dyck
CharUnits::fromQuantity() of the form CharUnits::fromQuantity(bitSize, Context.getCharWidth()). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123542 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15Unbreak the MSVC build again: replace bzero by memset.Francois Pichet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123538 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15Also set unnamed_addr on declarations.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123531 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15clean up some dead code around __has_include() processing code identified by ↵Chris Lattner
the ted-o-matic. rdar://8867482 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123522 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15Introduce a new kind of TemplateName that captures a substitutedDouglas Gregor
template template parameter pack that cannot be fully expanded because its enclosing pack expansion could not be expanded. This form of TemplateName plays the same role as SubstTemplateTypeParmPackType and SubstNonTypeTemplateParmPackExpr do for template type parameter packs and non-type template parameter packs, respectively. We should now handle these multi-level pack expansion substitutions anywhere. The largest remaining gap in our variadic-templates support is that we cannot cope with non-type template parameter packs whose type is a pack expansion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123521 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15Add initial prototype for implementation ofTed Kremenek
-Wuninitialized based on CFG dataflow analysis. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123512 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15Store/retrieve -fshort-enums for PCH, fixes rdar://8854933.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123510 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15Introduce a new expression kind, SubstNonTypeTemplateParmPackExpr,Douglas Gregor
that captures the substitution of a non-type template argument pack for a non-type template parameter pack within a pack expansion that cannot be fully expanded. This follows the approach taken by SubstTemplateTypeParmPackType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123506 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Teach template template argument pack expansions to keep track of theDouglas Gregor
number of expansions, when we know it, and propagate that information through Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123493 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Handle substitutions into function parameter packs whose patternsDouglas Gregor
contain multiple parameter packs at different levels. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123488 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Cleanup confused code that redundantly called "getDeclContext()" twice.Ted Kremenek
Found by clang static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123485 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14The variable 'ReusedDecl' is written but never read.Ted Kremenek
Remove this variable (found by clang static analyzer). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123484 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14The variable 'isTemplateSpecialization' is no longerTed Kremenek
used; nuke all assignments and its declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123483 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Remove unused store to variable 'Name'. Found by clang static analyzer.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123482 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Driver: tweak handling of '--analyze' to invokeTed Kremenek
analyzer -cc1 options that are tailored to the input type. If the input type is "C++", we should only run the dead stores checker (for now). Similarly, checks specific to Objective-C should only run on Objective-C Code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123481 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Teach PackExpansionExpr to keep track of the number of pack expansionsDouglas Gregor
it will expand to, if known. Propagate this information throughout Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123470 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Properly propagate #pragma diagnostic mappings from PCH but not command-line ↵Argyrios Kyrtzidis
warning flags. Addresses rdar://8435969&8852495 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123462 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Rename 'RemoveDeadBindings()' to 'removeDeadBindings()'Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123460 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Rename 'EnterStackFrame()' to 'enterStackFrame()'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123459 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Teach RegionStore::EnterStackFrame() to handleTed Kremenek
the case where the called function has fewer formal arguments than actual arguments. This fixes a crash in the analyzer when doing function call inlining. Patch by Zhenbo Xu! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123458 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14When we're instantiating a direct variable initializer that has a packDouglas Gregor
expansion in it, we may end up instantiating to an empty expression-list. In this case, the variable is uninitialized; tweak the instantiation logic to handle this case. Fixes PR8977. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123449 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Keep track of the number of expansions to be produced from a type packDouglas Gregor
expansion, when it is known due to the substitution of an out parameter pack. This allows us to properly handle substitution into pack expansions that involve multiple parameter packs at different template parameter levels, even when this substitution happens one level at a time (as with partial specializations of member class templates and the signatures of member function templates). Note that the diagnostic we provide when there is an arity mismatch between an outer parameter pack and an inner parameter pack in this case isn't as clear as the normal diagnostic for an arity mismatch. However, this doesn't matter because these cases are very, very rare and (even then) only typically occur in a SFINAE context. The other kinds of pack expansions (expression, template, etc.) still need to support optional tracking of the number of expansions, and we need the moral equivalent of SubstTemplateTypeParmPackType for substituted argument packs of template template and non-type template parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123448 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Support the zero-initialization of VLAs when that really means a zeroJohn McCall
bit-pattern. Continue punting on zero-initializing VLAs with a nonzero pattern. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123439 91177308-0d34-0410-b5e6-96231b3b80d8