aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-02-04Factor out the actual overload resolution from TryConstructorInitialization, ↵Sebastian Redl
since it needs to be used again for list constructor resolution. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149791 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Don't unwrap initializer lists before calling TryConstructorInitialization, ↵Sebastian Redl
instead doing a little more work inside. This should make finding initializer list constructors easier, as well as fix one place where the ({}) vs {} issue was probably poorly handled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149790 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Remove an unused and unimplemented function prototype.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149789 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Also, these objc++ rewriter tests are meant to run in NeXt'sFariborz Jahanian
fragile-abi mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149788 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04These tests are intended to run in NeXt's legacy objective-c abi (fragile-abi).Fariborz Jahanian
Make this explicit since default is now nonfragile-abi. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149787 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Some compilers do require Diagnostic.h to be present here.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149785 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Don't include Diagnostics.h twice when it's required zero times.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149784 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Move a method from IdentifierTable.h out of line and remove the SmallString ↵Benjamin Kramer
include. Fix all the transitive include users. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149783 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Remove Diagnostic.h include from Preprocessor.h.Benjamin Kramer
- Move the offending methods out of line and fix transitive includers. - This required changing an enum in the PPCallback API into an unsigned. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149782 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Move various diagnostic operator<< overloads out of line and remove includes ↵Benjamin Kramer
of Diagnostic.h. Fix all the files that depended on transitive includes of Diagnostic.h. With this patch in place changing a diagnostic no longer requires a full rebuild of the StaticAnalyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149781 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Move Storage and StorageAllocator out of the PartialDiagnostic class so we ↵Benjamin Kramer
can forward declare them. Let ASTContext allocate the storage in its BumpPtrAllocator. This will help us remove ASTContext's depedency on PartialDiagnostic.h soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149780 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04StaticAnalyzer: Remove FixIts from PathDiagnosticPieces.Benjamin Kramer
They were unused and pulled in Diagnostic.h for no reason. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149779 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04In C++11 mode, when an integral constant expression is desired and we have aRichard Smith
value of class type, look for a unique conversion operator converting to integral or unscoped enumeration type and use that. Implements [expr.const]p5. Sema::VerifyIntegerConstantExpression now performs the conversion and returns the converted result. Some important callers of Expr::isIntegralConstantExpr have been switched over to using it (including all of those required for C++11 conformance); this switch brings a side-benefit of improved diagnostics and, in several cases, simpler code. However, some language extensions and attributes have not been moved across and will not perform implicit conversions on constant expressions of literal class type where an ICE is required. In passing, fix static_assert to perform a contextual conversion to bool on its argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149776 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Don't allow a value of a scoped enumeration to be used as the first bound for anRichard Smith
array new expression. This lays some groundwork for the implicit conversion to integral or unscoped enumeration which C++11 ICEs undergo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149772 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04[analyzer] Make sure Containers OutOfBounds checker does not crash on ↵Anna Zaks
undefined arguments, when CF functions are called with wrong number of arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149771 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Disallow constexpr main.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149770 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Fix a rejects-valid in C++11: array new of a negative size, or overflowing arrayRichard Smith
new, is well-formed with defined semantics of throwing (a type which can be caught by a handler for) std::bad_array_new_length, unlike in C++98 where it is somewhere nebulous between undefined behavior and ill-formed. If the array size is an integral constant expression and satisfies one of these criteria, we would previous the array new expression, but now in C++11 mode, we merely issue a warning (the code is still rejected in C++98 mode, naturally). We don't yet implement new C++11 semantics correctly (see PR11644), but we do implement the overflow checking, and (for the default operator new) convert such expressions to an exception, so accepting such code now does not seem especially unsafe. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149767 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Unbreak failing test added in r149738.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149766 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04ArrayRef goodness in MultiplexConsumer, no functionality change.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149764 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Remove unused field from FixItRecompile.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149762 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Don't warn on use of default allocator with an over-aligned type when theNick Lewycky
allocator is given the pointer to allocate into. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149760 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Fix ASTMerge tests that I broke in my previous commit.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149759 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04autoconf: update config headerDylan Noblesmith
Sync with the change in r149652. Also fix the comment to sync with LLVM's config.h header. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149748 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04[analyzer] Turn on by default two checkers:Anna Zaks
- osx.coreFoundation.containers.IndexOutOfBounds - osx.cocoa.SelfInit git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149747 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04[analyzer] fixup to the previous commit.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149746 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04[analyzer] Minor cleanups to the ObjCSelfInitChecker.Anna Zaks
(Also renames in other ObjC checkers to create one category of checks.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149745 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Fixed some testsuite problems introduced by mySean Callanan
last commit. Sorry for the outage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149744 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Comment mystery code.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149742 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Revert r149721. chapuni tells me akyrtzi already fixed the testNico Weber
by adding a triple, and the typedef makes things worse on windows. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149740 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Use variable in place of multiple CI.getFrontendOpts() calls and use a bitArgyrios Kyrtzidis
of ArrayRef goodness. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149739 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04New test case.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149738 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Clang has existing support for debuggers thatSean Callanan
want to provide "po"-like functionality which treats the result of an expression implicitly as "id" (if it is not otherwise known) and prints it as an Objective-C object. This has in the past been gated by the "DebuggerSupport" language option, but that is too general. Debuggers also provide other commands like "print" that do not make any assumptions about whether the object is an Objective-C object. This patch makes the assumption conditional on a new language option: DebuggerCastResultToId. I have also made corresponding modifications to the testsuite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149735 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Create new tag for the property. This is a work in progress.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149734 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04[libclang] Stick to the silly notion that a forward class/protocolArgyrios Kyrtzidis
declaration is a reference. rdar://10749990 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149733 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Suppress the used-but-not-defined warning for static data members while I ↵Eli Friedman
look into a rather nasty bug in the new odr-use marking code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149731 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04constexpr:Richard Smith
The recent support for potential constant expressions exposed a bug in the implementation of libstdc++4.6, where numeric_limits<int>::min() is defined as (int)1 << 31, which isn't a constant expression. Disable the 'constexpr function never produces a constant expression' error inside system headers to compensate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149729 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Update tests so that they don't rely upon LLVMDebugVersion number.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149726 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Make _mm_cmpgt_epi8 immute to -funsigned-char.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149725 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Try to get test passing on windows.Nico Weber
Idea by Jean-Daniel Dupas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149721 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Make explicit captures which cause implicit captures work correctly.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149719 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Implement implicit capture for lambda expressions.Eli Friedman
Still left: explicit captures in lambdas need to cause implicit capture, and I need to take a look at the diagnostics for some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149718 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Make sure that the layout-override parser grabs the size, not the dataDouglas Gregor
size. Otherwise, we can end up with bogus layouts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149703 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03When a pack expansion occurs in the template argument list of an aliasDouglas Gregor
template without a corresponding parameter pack, don't immediately substitute the alias template. This is under discussion in the C++ committee, and may become ill-formed, but for now we match GCC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149697 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Add a triple to test/SemaObjC/format-strings-objc.m to make it pass in ↵Argyrios Kyrtzidis
windows hosts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149696 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Don't warn about anonymous struct/union in C11.Hans Wennborg
Also, in C, call this a C11 extension rather than a GNU extension. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149695 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Implement support for a pack expansion into a fixed-lengthDouglas Gregor
template. Such pack expansions can easily fail at template instantiation time, if the expanded parameter packs are of the wrong length. Fixes <rdar://problem/10040867>, PR9021, and the example that came up today at Going Native. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149685 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03[analyzer] Testing: add automated reference results reset.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149682 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Fix -ftrap-function fallout from llvm r145714. <rdar://problem/10799325>Bob Wilson
That llvm change removed the -trap-func backend option, so that using -ftrap-function with clang would cause the backend to complain. Fix it by adding the trap function name to the CodeGenOptions and passing it through to the TargetOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149679 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Change Lexer::makeFileCharRange() to have it accept a CharSourceRangeArgyrios Kyrtzidis
instead of a SourceRange, and handle the case where the range is a char (not token) range. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149677 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Change the fixed array of FixitHints to a SmallVector to lift offArgyrios Kyrtzidis
the limit on the number of fixits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149676 91177308-0d34-0410-b5e6-96231b3b80d8