aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema
AgeCommit message (Collapse)Author
2011-09-23Removing a bunch of dead returns/breaks after llvm_unreachables.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140407 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-23Don't propagate the 'availability' attribute through declarationDouglas Gregor
merging for overrides. One might want to make a method's availability in a superclass different from that of its subclass. Fixes <rdar://problem/10166223>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140406 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-23Add a new warning to -Wliteral-conversion to catch cases where a string literalRichard Trieu
is cast to a boolean. An exception has been made for string literals in logical expressions to allow the common case of use in assert statements. bool x; x = "hi"; // Warn here void foo(bool x); foo("hi"); // Warn here assert(0 && "error"); assert("error); // Warn here git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140405 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-23When checking for weak vtables, check whether the actual definition ofDouglas Gregor
the key function is inline, rather than the original declaration. Perhaps FunctionDecl::isInlined() is poorly named. Fixes <rdar://problem/9979458>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140400 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-23Switch assert(0/false) llvm_unreachable.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-22Don't finalize checking of base and member initializers for aDouglas Gregor
constructor template. Fixes PR10457. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140350 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-22Only trigger the initialize-an-array-via-elementwise-copy/move codeDouglas Gregor
generation when we're dealing with an implicitly-defined copy or move constructor. And, actually set the implicitly-defined bit for implicitly-defined constructors and destructors. Should fix self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140334 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-22Don't use TemplateArgumentListInfo inside AST nodes because it may leak.Argyrios Kyrtzidis
Use ASTTemplateArgumentListInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140331 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-22Don't allow template argument deduction to deduce a placeholder type,Douglas Gregor
ever. Fixes PR10939. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140304 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-22In OpenCL, conversions between different vector types are disallowedTobias Grosser
OpenCL 6.2.1 says: "Implicit conversions between built-in vector data types are disallowed." OpenCL 6.2.2 says: "Explicit casts between vector types are not legal." For example: uint4 u = (uint4)(1); int4 i = u; // invalid implicit conversion int4 e = (int4)u; // invalid explicit conversion Fixes PR10967. Submitted by: Anton Lokhmotov <Anton.lokhmotov@gmail.com> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140300 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-22ArrayRef-ifying the fields passed to Sema::ActOnFieldsDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140293 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-22ArrayRef-ifying the UnexpandedParameterPacks passed to ↵David Blaikie
Sema::CheckParameterPacksForExpansion git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140290 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-21In the OpenCL mode, the AltiVec mode must be off and checks must be strictTobias Grosser
OpenCL is different from AltiVec in the way it supports vector literals. OpenCL is strict with regards to semantic checks. For example, implicit conversions and explicit casts between vectors of different types are disallowed. Fixes PR10975. Submitted by: Anton Lokhmotov <Anton.lokhmotov@gmail.com> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140270 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-21ArrayRef-ifying Function/BlockDecl's setParamsDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140268 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-21Diagnose attempts to write a templated data member, from StepanDouglas Gregor
Dyatkovskiy! Fixes PR10896. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140250 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-21Enforce access control for conversion operators used in contextualJohn McCall
conversions (rather than just call-arguments). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140244 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-21[microsoft] Move missing typename warning from -fms-extensions to ↵Francois Pichet
-fms-compatibility. Also allow the missing typename warning at function scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140240 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-21Change:Richard Trieu
assert(!"error message"); To: assert(0 && "error message"); which is more consistant across the code base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140232 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20[ARC] Allow forming 'id*' in an unevaluated context. Fixes rdar://10148540.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140212 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20Move Microsoft access specifier bug emulation from -fms-extensions to ↵Francois Pichet
-fm-compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140189 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20Introduce an egregious hack for modules to cope with headers that comeDouglas Gregor
from unfriendly (== not at all modularized) directories. This is temporary, and it only affects module construction until I'll figured out how to deal with system headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140159 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20Remove redundant break statements, and replace asserts with llvm_unreachablePeter Collingbourne
Per John's review comments for r140068. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140142 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20Fix a pretty nasty bug in noreturn destructors that cascaded into lotsChandler Carruth
of false positive warnings that depend on noreturn destructors pruning the CFGs, but only in C++0x mode! This was really surprising as the debugger quickly reveals that the attributes are parsed correctly (and using the same code) in both modes. The warning fires in the same way in both modes. But between parsing and building the destructor declaration with the noreturn attribute and the warning, it magically disappears. The key? The 'noexcept' appears! When we were rebuilding the destructor type with the computed implicit noexcept we completely dropped the old type on the floor. This almost makes sense (as the arguments and return type to a destructor aren't exactly unpredictable), but lost any function type attributes as well. The fix is simple, we build the new type off of the old one rather than starting fresh. Testing this is a bit awkward. I've done it by running the noreturn-sensitive tests in both modes, which previous failed and now passes, but if anyone has ideas about how to more specifically and thoroughly test that the extended info on a destructor is preserved when adding noexcept, I'm all ears. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140138 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19Add list initialization for complex numbers in C. Essentially, this allows ↵Eli Friedman
"_Complex float x = {1.0f, 2.0f};". See changes to docs/LanguageExtensions.html for a longer description. <rdar://problem/9397672>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140090 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19OpenCL: introduce support for function scope __local variablesPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19Rename SourceLocation::getFileLocWithOffset -> getLocWithOffset.Argyrios Kyrtzidis
It already works (and is useful with) macro locs as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140057 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19objc - some refactoring of my last 'self' patch.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140031 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19CurContext cannot be null ever.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140022 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19Removed an unused field and its accessors methods.Erik Verbruggen
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140017 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19In constructors, don't generate implicit initializers for members of ↵Richard Smith
anonymous structs contained within anonymous unions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140015 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19Remove function which is unused as of r139996. Thanks to David Blaikie for ↵Richard Smith
bringing this to my attention. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140013 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18Move the "jump bypasses variable initialization" error -> warning downgrade ↵Francois Pichet
from -fms-extensions to -fms-compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140008 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18In Microsoft mode(-fms-compatibility), prefer an integral conversion to a ↵Francois Pichet
floating-to-integral conversion if the integral conversion is between types of the same size. For example: void f(float); void f(int); int main { long a; f(a); } Here, MSVC will call f(int) instead of generating a compile error as clang will do in standard mode. This fixes a few errors when parsing MFC code with clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140007 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18PR10304: Do not call destructors for data members from union destructors. ↵Richard Smith
Prior to C++11, this has no effect since any such destructors must be trivial, and in C++11 such destructors must not be called. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139997 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18PR10954: variant members should not be implicitly initialized in ↵Richard Smith
constructors if no mem-initializer is specified for them, unless an in-class initializer is specified. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139996 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18Fix PR10531. Attach an initializer to anonymous unions, since the default ↵Richard Smith
constructor might not be trivial (if there is an in-class initializer for some member) and might be deleted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139991 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-17Let -Warray-bounds handle casted array types without false positives.Nico Weber
Fixes PR10771. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139990 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-17objc - Treat type of 'self' in class methods as root ofFariborz Jahanian
class of this method. // rdar://10109725 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139989 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-17objc: Don't crash with decl context for property impl.Fariborz Jahanian
is missing. // rdar//10127639 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139988 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-17Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear ↵Francois Pichet
that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag. Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139987 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16In Microsoft mode, warn if an indirect goto jump over a variable initialization.Francois Pichet
Also add a test case for the non Microsoft case because such test didn't exist. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139971 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16Moves calls of checkArithmeticNull() from CreateBuiltinBinOp() into the ↵Richard Trieu
individual Check*Operands() functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139895 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16Thread safety: Adding FIXMEs and a couple cleanupsCaitlin Sadowski
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139894 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Remove no longer needed LHSType and RHSType from checkArithmeticNull()Richard Trieu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139879 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Change checkArithmeticNull() to use a NonNullType, instead of checking both theRichard Trieu
LHSType and RHSType for everything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139878 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Finish the lex->LHS and rex->RHS cleanup in Sema.Richard Trieu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139856 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15reverse patch in r139818 to focus on 'self'Fariborz Jahanian
instead of 'Class'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139834 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Objective-c: Conversion from type Class to any root class type is allowed Fariborz Jahanian
in class methods with no warning. //rdar://10109725 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139818 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Thread safety: cleaning up FIXME for trylocksCaitlin Sadowski
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139805 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Thread safety: refactoring various out of scope warnings to use the same ↵Caitlin Sadowski
inteface. This eliminates a lot of unnecessary duplicated code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139801 91177308-0d34-0410-b5e6-96231b3b80d8