aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema
AgeCommit message (Collapse)Author
2011-10-18Provide result types for code completions that describe built-inDouglas Gregor
expressions (this, sizeof, etc.). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142424 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18Macro metaprogramming for builtin types.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142420 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18-Wc++98-compat and -Wc++98-compat-pedantic warnings for Sema, part 1.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142419 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18objc: more changes in use of IBOutletCollection attribute.Fariborz Jahanian
'Class' is disallowed as argument. If the argument is missing, NSObject is assumed. // rdar://10296078 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142409 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18Set the objc "property attributes as written" for extension properties as well.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142406 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18In C++11, a class's members are allowed to be nominated as friends.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142393 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18Make it possible to compute the type of 'this' without capturingDouglas Gregor
it. Refactoring to be used in a moment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142360 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18Add code completions for C++0x expressionsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142357 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18Suggest %zu for size_t args to printf.Hans Wennborg
For PR11152. Make PrintSpecifier::fixType() suggest "%zu" for size_t, etc. rather than looking at the underlying type and suggesting "%llu" or other platform-specific length modifiers. Applies to C99 and C++11. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142342 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18Don't format the code completion for parameters of block literalDouglas Gregor
arguments as block literal arguments; the block literal argument code completion should only go one level deep. Fixes <rdar://problem/10291294>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142335 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18Add -Wc++11-compat warning for an inline specifier on an explicit instantiation.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142333 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18When transforming the arguments for a C++ "new" expression, make sureDouglas Gregor
to drop the implicitly-generated value initialization expression used for initializing scalars. Fixes <rdar://problem/10283928>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142330 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18Refactor the checking for explicit template instantiations being performed inRichard Smith
the right namespace in C++11 mode. Teach the code to prefer the 'must be in precisely this namespace' diagnostic whenever that's true, and fix a defect which resulted in the -Wc++11-compat warning in C++98 mode sometimes being omitted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142329 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Perform lvalue-to-rvalue conversions on __builtin_offsetof array argument indexRichard Smith
before typechecking, as suggested by John. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142308 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Add -Wc++98-compat warnings for uses of the new keywords 'alignof', 'char16_t',Richard Smith
'char32_t', 'constexpr', 'decltype', 'noexcept', 'nullptr' and 'static_assert'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142302 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17The comparison of two vectors should return a signed result. ↵Tanya Lattner
hasIntegerRepresentation() used to always return false for vectors, but since it was changed, it also changed the return type of a compare of two unsigned vectors to be unsigned. This patch removes the check for hasIntegerRepresentation since its not needed and returns the appropriate signed type. I added a new test case and updated exisiting test cases that assumed an unsigned result. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142250 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17obj-c++: Fix a IRGen crash when getter is a reference type.Fariborz Jahanian
Fix is in Sema. // rdar://10153365 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142249 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Add missing case to switch.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142246 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Strip qualifiers off the type of an implicit property defined byJohn McCall
only a setter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142236 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Introduce ASTConsumer::HandleTopLevelDeclInObjCContainer which acceptsArgyrios Kyrtzidis
top-level declarations that occurred inside an ObjC container. This is useful to keep track of such decls otherwise when e.g. a function is declared inside an objc interface, it is not passed to HandleTopLevelDecl and it is not inside the DeclContext of the interface that is returned. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142232 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Keep track when a ObjC interface/protocol was initially created as a forward ↵Argyrios Kyrtzidis
reference. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142230 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Teach the ARC compiler to not require __bridge casts whenJohn McCall
passing/receiving CF objects at +0 to/from Objective-C methods or audited C functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142219 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Add a helper function for determining whether an expressionJohn McCall
has placeholder type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142203 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Revert r142142: "Make a C-style cast a const-cast, to suppress a GCC warning."Sebastian Redl
Richard already fixed the underlying issue, so the cast was superfluous. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142192 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17For modules, all macros that aren't include guards are implicitlyDouglas Gregor
public. Add a __private_macro__ directive to hide a macro, similar to the __module_private__ declaration specifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142188 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Perform an lvalue-to-rvalue conversion on an array index in a ↵Richard Smith
__builtin_offsetof expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142179 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-16Slightly simplify a constant expression check. No functional change.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142167 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-16Add sema checks for calls to functions taking static array parametersPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142157 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-16Implement overload resolution from init lists for scalar parameter types.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142148 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-16Diagnose when omitting braces in direct list-initialization in C++0x.Sebastian Redl
This also applies to C99-style aggregate literals, should they be used in C++11, since they are effectively identical to constructor call list-initialization syntax. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142147 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-16In the verify-only pass, check that items that don't have an initializer in ↵Sebastian Redl
an init list can be value-initialized, at least when designated initializers are not involved. No test case yet, since early failures cannot be distinguished from late failures until overload resolution works. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142146 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-16Check for unavailable declarations in Sema::CanUseDecl.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142145 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-16Drop the Diagnose parameter from Sema::PerformImplicitConversion again and ↵Sebastian Redl
instead use TryImplicitConversion in CheckSingleAssignmentConstraints when that function is in no-diagnostics mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142143 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-16Make a C-style cast a const-cast, to suppress a GCC warning. I should fix ↵Sebastian Redl
the underlying issue eventually, but this interface will probably change anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142142 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-15Avoid duplicate unavailbility diagnostics in objc++.Fariborz Jahanian
// rdar://10268422 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142078 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-15obj-c++: allow the getter/setter to return/take parametersFariborz Jahanian
by reference. // rdar://10188258 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142075 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-15Add -Wc++98-compat warning for deduced 'auto' type specifier.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142057 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Provide half floating point support as a storage only type.Anton Korobeynikov
Lack of half FP was a regression compared to llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142016 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Attempt to fix Windows buildbot, round 2.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142014 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Add template instantiation support for AtomicExpr.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142012 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Attempt to fix buildbot failure on Windows.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142008 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Don't try to diagnose anything when we're passing incomplete typesDouglas Gregor
through varargs. This only happens when we're in an unevaluated context, where we don't want to trigger an error anyway. Fixes PR11131 / <rdar://problem/10288375>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141986 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Reinstate r141898 (reverted in r141921), without the ↵Richard Smith
-Wc++98-compat-variadic-templates flag. Consensus is that -Wc++98-compat is a useful addition to clang, but per-C++11-feature warnings may not be. Original patch by Jeffrey Yasskin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141985 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14[temp.explicit]p1: constexpr cannot be specified in explicit instantiations.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141982 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Change operator<< for raw_ostream and NamedDecl to take a reference instead ↵Benjamin Kramer
of a pointer. Passing a pointer was a bad idea as it collides with the overload for void*. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141971 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Fix misplaced comment.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141967 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Make value kind based on the return type of the getter, notFariborz Jahanian
property type, for when getter may be a reference type. // rdar://10188258 revised. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141966 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Under ARC, merge the bit corresponding to the ns_returns_retainedDouglas Gregor
attribute from the first declaration to later declarations. Fixes <rdar://problem/10142572>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141957 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Only warn in -Wliteral-conversion if the conversion loses informationMatt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141955 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14When declaring an out-of-line template, attempt to rebuild any typesDouglas Gregor
within the template parameter list that may have changed now that we know the current instantiation. Fixes <rdar://problem/10194295>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141954 91177308-0d34-0410-b5e6-96231b3b80d8