aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema
AgeCommit message (Collapse)Author
2011-10-09Per the note in C++0x [temp.deduct.call]p4, don't attempt templateDouglas Gregor
argument deduction against a function parameter that has no deducible template parameters in it. Fixes PR8598. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141517 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09A friend template specialization is also dependent if any of itsDouglas Gregor
template arguments are dependent. Fixes PR10913. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141515 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09Only allow taking the address of an expression of type 'overloadedDouglas Gregor
function type' when that expression is actually an overloaded function reference (and not the address of an overloaded function reference). Fixes PR11066. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141514 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09Diagnose attempts to declare a non-static data member with aDouglas Gregor
non-identifier name. Fixes PR10839. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141513 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09When building source location information for an _Atomic type, be sureDouglas Gregor
to fill in the source locations for the underlying value type. Fixes an intermittent crasher (due to uninitialized data) in the PCH test for _Atomic types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141512 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09After instantiating a 'noexcept' expression, be sure to convert it toDouglas Gregor
a boolean value and check that it is a constant expression. Fixes PR11084. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141511 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09Initialize the HadMultipleCandidates flag.Benjamin Kramer
Found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141510 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-08objc: Do not warn about mismatch on Super's readonly property attribute, Fariborz Jahanian
related to a readwrite property, and Sub's readwrite property. // rdar://9396329 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141497 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-08Silence a warning about casting away constness.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141496 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-08WhitespaceNAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141486 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07objc++: some minor cleanup and a test caseFariborz Jahanian
for atomic setters which requires assignment operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141415 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07Hack in a workaround for PR11082 until we have a proper fix. ThisChandler Carruth
un-breaks every glib-dependent compile with Clang. I'm not sure this is even the best workaround, so suggestions welcome. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141381 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07Rename TagDecl::isDefinition -> isCompleteDefinitionJohn McCall
for better self-documenting code, since the semantics are subtly different from getDefinition(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141355 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06objc: Improve on diagnostic when atomic proeprty is synthesizedFariborz Jahanian
on one accessor and user-provide with another. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141343 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06Move type-checking for C-style casts in C into the now-misnamed John McCall
SemaCXXCast.cpp. Should have no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141336 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06Implicitly assume that a ObjC category to an unavailable interface is also ↵Argyrios Kyrtzidis
unavailable; only give an 'unavailable' error on the @implementation of the category. rdar://10234078 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141335 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06When using an unavailable/deprecated interface Foo inside Foo's ↵Argyrios Kyrtzidis
interface/implementation don't emit unavailable errors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141334 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06Support for C1x _Atomic specifier (see testcase). This is primarily being ↵Eli Friedman
committed at the moment to help support C++0x <atomic>, but it should be a solid base for implementing the full specification of C1x _Atomic. Thanks to Jeffrey Yasskin for the thorough review! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141330 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06objc++: For atomic properties of c++ class objec typet, appropriateFariborz Jahanian
operator= is called. Issue a warning for non-trivial case until runtime support is provided. // rdar://6137845 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141302 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06PR11067: A definition of a constexpr static variable doesn't need an ↵Richard Smith
initializer if the in-class declaration had one. Such a declaration must be initialized by a constant expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141279 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06Added CXAvailability_NotAccessible to indicate that a declaration is ↵Erik Verbruggen
available, but not accessible from the current code completion context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141278 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06OpenCL: add a non-standard extension, cl_clang_storage_class_specifiers,Peter Collingbourne
which enables support for C99 storage-class specifiers. This extension is intended to be used by implementations to implement OpenCL C built-in functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141271 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-05Fix the rewriter, rdar://10234024.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141201 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-05Added a flag to identify resolved overloaded function references.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141171 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-05Refactor the analysis of C++ cast expressions so that evenJohn McCall
C-style and functional casts are built in SemaCXXCast.cpp. Introduce a helper class to encapsulate most of the random state being passed around, at least one level down. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141170 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-05c: assignment/init of a function pointer whose function(s)Fariborz Jahanian
return to one which does not return (has noreturn attribute) should warn as it is an unsafe assignment. // rdar://10095762 c++ already handles this. This is the c version. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141141 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-04Don't allow an rvalue reference to bind to the result of a calling aDouglas Gregor
conversion function whose result type is an lvalue reference. The initialization code already handled this properly, but overload resolution was allowing the binding. Fixes PR11003 / <rdar://problem/10233078>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141137 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-04Remove a nonsensical bit of code from ↵Eli Friedman
InitListChecker::getStructuredSubobjectInit which was increasing the reserved size for an init list past its maximum possible size. Fixes PR11056, a case where we were reserving a bunch of memory for arrays that was never actually used. (No testcase because I don't think we have any way to actually write a testcase for this; the chosen value of NumElements has no effects on anything other than performance and memory usage.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141106 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-04objc: Turn diagnostic on property type mismatch inFariborz Jahanian
continuation class into warning. // rdar://10231514 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141100 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-04Improve location fidelity of objc decls.Argyrios Kyrtzidis
-Add the location of the class name to all objc container decls, not just ObjCInterfaceDecl. -Make objc decls consistent with the rest of the NamedDecls and have getLocation() point to the class name, not the location of '@'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141061 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03objc arc: Suppress certain arc diagnostics on unavailableFariborz Jahanian
functions. // rdar://10186536 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141037 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03Fixed source range for template implicit instantiations.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141018 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03objc++: Accessing explicit property of reference type need Fariborz Jahanian
not bind to a temporary. Fixes //rdar://10188258 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141009 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03Propagate __attribute__((returns_twice)) from C to IL.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141002 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03Allow getting all source locations of selector identifiers in a ObjCMethodDecl.Argyrios Kyrtzidis
Instead of always storing all source locations for the selector identifiers we check whether all the identifiers are in a "standard" position; "standard" position is -Immediately before the arguments: -(id)first:(int)x second:(int)y; -With a space between the arguments: -(id)first: (int)x second: (int)y; -For nullary selectors, immediately before ';': -(void)release; In such cases we infer the locations instead of storing them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140989 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03Allow getting all source locations of selector identifiers in a ObjCMessageExpr.Argyrios Kyrtzidis
Instead of always storing all source locations for the selector identifiers we check whether all the identifiers are in a "standard" position; "standard" position is -Immediately before the arguments: [foo first:1 second:2] -With a space between the arguments: [foo first: 1 second: 2] -For nullary selectors, immediately before ']': [foo release] In such cases we infer the locations instead of storing them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140987 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03ArrayRef'ize ObjCMessageExprArgyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140986 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03Pass from the parser the locations of selector identifiers when creatingArgyrios Kyrtzidis
objc method decls. They are not stored in the AST yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140984 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03Don't keep NumSelectorArgs in the ObjCMethodDecl, the number can be derived ↵Argyrios Kyrtzidis
from the selector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140983 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03Pass all the locations of the selector identifiers for a message expression ↵Argyrios Kyrtzidis
from the parser. They are not kept in the AST yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140982 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-02CUDA: diagnose invalid calls across targetsPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140978 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-02CUDA: add separate diagnostics for too few/many exec config argsPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140977 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-02Add ConvertArgumentsForCall diagnostics for at least/at most n argsPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140976 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-02CUDA: diagnose unconfigured calls to global functionsPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140975 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-01Parse attributes written in an ObjC method parameter type asJohn McCall
attributes on the parameter declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140944 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-01Hey, maybe we shouldn't silently ignore decl attributesJohn McCall
on declarators written as types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140931 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-01constexpr: semantic checking for constexpr functions and constructors. Based inRichard Smith
part on patches by Peter Collingbourne. We diverge from the C++11 standard in a few areas, mostly related to checking constexpr function declarations, and not just definitions. See WG21 paper N3308=11-0078 for details. Function invocation substitution is not available in this patch; constexpr functions cannot yet be used from within constant expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140926 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-01Allow the results of cf_returns_not_retained functionJohn McCall
calls, or calls to audited functions without an explicit return attribute, to be casted without a bridge cast. Tie this mechanism in with the existing exceptions to the cast restrictions. State those restrictions more correctly and generalize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140912 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-30Mark a TagDecl when it is free standing (e.g. "struct foo;")Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140894 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-30objc arc: allow objc_returns_inner_pointer on methods that return Fariborz Jahanian
a reference type, since inner reference is much like an inner pointer. // rdar://10139365 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140880 91177308-0d34-0410-b5e6-96231b3b80d8