aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-09-12When performing overload resolution, only compare the final conversionDouglas Gregor
sequences for two conversion functions when in fact we are in the text of initialization by a user-defined conversion sequences. Fixes PR8034. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113724 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-12Diagnose the instantiation of variables (including static dataDouglas Gregor
members) with function type. Fixes PR8047. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113723 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-12Don't complain about useless user-defined conversion functions whenDouglas Gregor
they were instantiated from a template. In template metaprogramming, stuff happens. Fixes PR8065. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113722 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-12When diagnosing C++ [temp.expl.spec]p3 in C++98/03 mode, downgrade theDouglas Gregor
error to a warning if we're in a case that would be allowed in C++0x. This "fixes" PR8084 by making Clang accept more code than GCC and (non-strict) EDG do. Also, add the missing test case for the C++0x semantics, which should have been in r113717. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113718 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-12Implement C++0x semantics for [temp.expl.spec]p2, which loosens theDouglas Gregor
restrictions on out-of-line specializations to allow them anywhere in an enclosing context. Motivated by PR8084. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113717 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-12Add basic support for Microsoft enum forward declaration. Francois Pichet
Assigning an underlying integral type to an enum forward declaration will come in a next patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113716 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-12Implement the "note" in C++ [over.built]p1, which is actually meant toDouglas Gregor
be a semantic requirement that a built-in overloaded operator is not added to the overload set of there is already a user-defined overloaded operator with the same parameter types. Fixes PR8087. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113713 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-12Don't perform integral promotions from an incompletion enumerationDouglas Gregor
type. Fixes PR8089 in a slightly different way than had been suggested. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113711 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Teach the EvaluatedExprVisitor and its client, which marksDouglas Gregor
declarations in potentially-evaluated subexpressions, about recursion. Fixes the release-mode self-host failure I introduced in r113700. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113708 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Augment -ftrapv to check for divide by zero, mod by zero, and INT_MIN % -1.Chris Lattner
Patch by John Regehr! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113705 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Update website to reflect that tests are no longer failing on Windows.Francois Pichet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113704 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Add a completely unnecessary "template" keyword to appease GCCDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113703 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Fix last test still failing on Win32. 100% pass rate now!Francois Pichet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113702 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Update documentation to reflect the addition of support for in-classDouglas Gregor
initialization of static const floating-point data membmers (John's patch, in r113663). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113701 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11When parsing default function arguments, do not mark any declarationsDouglas Gregor
used in the default function argument as "used". Instead, when we actually use the default argument, make another pass over the expression to mark any used declarations as "used" at that point. This addresses two kinds of related problems: 1) We were marking some declarations "used" that shouldn't be, because we were marking them too eagerly. 2) We were failing to mark some declarations as "used" when we should, if the first time it was instantiated happened to be an unevaluated context, we wouldn't mark them again at a later point. I've also added a potentially-handy visitor class template EvaluatedExprVisitor, which only visits the potentially-evaluated subexpressions of an expression. I bet this would have been useful for noexcept... Fixes PR5810 and PR8127. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113700 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Document our extension to constant-fold __builtin_strlen and strlenDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113699 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11The two libclang crash-recovery tests that involve precompiledDouglas Gregor
preambles end up leaving the precompiled preambles around. This is by design, since we do minimal cleanup during crash recovery. However, it's unfortunate for testing, so introduce a hook that allows these two tests to put the precompiled preamble somewhere where we can delete them after testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113698 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11If we fail to create a temporary file for the precompiled preamble,Douglas Gregor
just abort creation of the precompiled preamble rather than doing silly things. This is the second part of the fix for the weird preamble-related failures on Windows. Big thanks to Francois Pichet for the great detective work! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113697 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11add latest gentoo gcc pathNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113696 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Tweak GetPreamblePCHPath() to more closely match the behavior of theDouglas Gregor
Windows GetTempPath() function, and be sure to create the directory in which the precompiled preamble will reside before creating the temporary file itself. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113695 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Disable cxa_atexit by default on MingW.Anton Korobeynikov
Patch by Dimitry Andric! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113683 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11CMake: Fix mingw32 build.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113677 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11Fixes an obscure bug in importd block variable layoutFariborz Jahanian
information when imported variable is used more than once. Originally though to be a bug in importing block varibles. Fixes radar 8417746. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113675 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Test destructors in delete expressions and of temporaries for throwing.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113664 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Support in-class initialization of static const floating-point data members.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113663 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Fix my silly sorting predicate. I hate integer-to-bool conversionsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113656 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Address Doug's comments.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113650 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Make sure we're producing a newline in the preprocessed output beforeDouglas Gregor
emitting a #pragma, whenever one is needed. Fixes <rdar://problem/8417307>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113648 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Eli helped me understand how evaluation contexts work.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113642 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Driver: Set TOOL_NO_EXPORTS when building a "production" compiler, we don'tDaniel Dunbar
currently expect that to be useful for plugins, and this is important for startup performance: -- ddunbar@lordcrumb:tmp$ touch empty.c ddunbar@lordcrumb:tmp$ runN 100 ~/llvm.obj.64/Release/bin/clang -c empty.c name avg min med max SD total user 0.0054 0.0052 0.0054 0.0055 0.0000 0.5350 sys 0.0084 0.0090 0.0078 0.0087 0.0008 0.8390 wall 0.0149 0.0149 0.0149 0.0149 0.0003 1.4943 ddunbar@lordcrumb:tmp$ runN 100 ~/llvm.obj.64/Release/bin/clang -c empty.c name avg min med max SD total user 0.0036 0.0036 0.0036 0.0038 0.0000 0.3646 sys 0.0072 0.0071 0.0068 0.0070 0.0006 0.7158 wall 0.0123 0.0123 0.0122 0.0136 0.0003 1.2262 -- git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113638 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Follow Ted's example and hide CXXNoexceptExpr's setters from all but ↵Sebastian Redl
serialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113634 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10CMake: Update to use standard CMake dependency tracking facilities insteadMichael J. Spencer
of whatever we were using before... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113631 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Test CXXNoexceptExpr codegen and serialization.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113630 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Implement CXXNoexceptExpr codegen.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113629 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Add another small test case.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113628 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Serialization support for CXXNoexceptExpr.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113627 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Make 'setProperty()', 'setBase()', and 'setLocation()' private in ↵Ted Kremenek
ObjCPropertyRefExpr, and friend ASTStmtReader so that it is the only class that can use them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113626 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Tests for noexcept in templates.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113625 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10First version of a testcase, plus fixes.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113624 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Define and implement CXXNoexceptExpr. Create it in Sema.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113623 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Parse the noexcept operator and stub out sema.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113622 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Implement Expr::CanThrow, a function that applies the noexcept operator ↵Sebastian Redl
rules to expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113621 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Make CallExpr::getCalleeDecl look through pointer derefs.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113620 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Fix a comment.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113619 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Polish diagnostics for null dereferences via ObjC ivar accesses. Finishes ↵Ted Kremenek
up <rdar://problem/6352035>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113612 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10IRGen fix for using property-dot syntax to pass Fariborz Jahanian
reference object to a c++ member function. fixes radar 8409336. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113602 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Re-devirtualize this. A new virtual method snuck in.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113582 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Support strlen() and __builtin_strlen() as constant expressions withDouglas Gregor
the call argument is a string literal. Fixes <rdar://problem/8413477>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113580 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Add checker implementation for my previous commit!Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113574 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Implement: <rdar://problem/6351970> rule request: warn if @synchronized ↵Ted Kremenek
mutex can be nil git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113573 91177308-0d34-0410-b5e6-96231b3b80d8