aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema
AgeCommit message (Collapse)Author
2011-10-14Added clang_getCompletionAnnotation and clang_getCompletionNumAnnotations toErik Verbruggen
retrieve annotations from completion string. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141953 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Really protect from infinite loop when there are objc method redeclarations.Argyrios Kyrtzidis
Serialization part will come later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141950 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Keep track of objc method redeclarations in the same interface.Argyrios Kyrtzidis
Avoid possible infinite loop when iterating over an ObjCMethod's redeclarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141946 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14Revert the -Wc++98-compat flag because dgregor doesn't like it.Jeffrey Yasskin
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141921 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-13objc-arc: 'Class' property is implicitly __unsafe_unretained.Fariborz Jahanian
// rdar://10239594 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141915 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-13Extend -Wno-sizeof-array-argument to strncpy and friends.Nico Weber
This finds 2 bugs in chromium and 1 in hunspell, with 0 false positives. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141902 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-13Implement the first piece of a -Wc++98-compat flag so that people can build inJeffrey Yasskin
C++11 mode but keep their sources compatible with C++98. This patch implements the -Wc++98-compat-variadic-templates sub-flag and -Wc++98-compat to include it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141898 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-13Tweak -Wuninitialized's handling of 'int x = x' to report that as the root ↵Ted Kremenek
cause of an uninitialized variable IFF there are other uses of that uninitialized variable. Fixes <rdar://problem/9259237>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141881 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-13HasFormOfMemberPointer implies IsAddressOfOperand for an overload set. SimplifyDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141878 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-13Allow calling an overloaded function set by taking the address of theDouglas Gregor
functions, e.g., (&f)(0). Fixes <rdar://problem/9803316>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141877 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-13Allow for annotate attributes after access specifiers. When suchErik Verbruggen
attributes are found, propagate them to subsequent declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141861 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-12When we determine that a function template specialization produced asDouglas Gregor
part of template argument deduction is ill-formed, we mark it as invalid and treat it as a deduction failure. If we happen to find that specialization again, treat it as a deduction failure rather than silently building a call to the declaration. Fixes PR11117, a marvelous bug where deduction failed after creating an invalid specialization, causing overload resolution to pick a different candidate. Then we performed a similar overload resolution later, and happily picked the invalid specialization to call... resulting in a silent link failure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141809 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-12Add returns_twice to functions that are known to return twice. This implementsRafael Espindola
the same behavior of gcc by keeping the attribute out of the function type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141803 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-12Fix typo in name of diagnostic.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141793 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-12Teach __has_nothrow_assign not to complain about access (GCC and EDGDouglas Gregor
ignore access entirely for it) and not to crash on assignment operator templates. Fixes PR11110. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141777 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-12constexpr: don't consider class types with mutable members to be literal types.Richard Smith
The standard doesn't allow this, but mutable constexpr variables break the semantics so badly that we can't reasonably accept them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141768 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-12objc: note location of the previously declaredFariborz Jahanian
property in the diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141745 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Catch placeholder types in DefaultLvalueConversionJohn McCall
and DefaultFunctionArrayLvalueConversion. To prevent significant regression for should-this-be-a-call fixits, and to repair some such regression from the introduction of bound member placeholders, make those placeholder checks try to build calls appropriately. Harden the build-a-call logic while we're at it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141738 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Rename SemaCXXCast.cpp to SemaCast.cpp.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141686 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Get rid of ShouldDeleteMoveConstructor.Sean Hunt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141650 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Consolidate copy constructor deletion into ShouldDeleteSpecialMember.Sean Hunt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141645 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Initial implementation of __atomic_* (everything except __atomic_is_lock_free).Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141632 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11[Microsoft] If -fms-compatibility, then downgrade missing typename error to ↵Francois Pichet
warning at function prototype scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141630 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Add typo correction for type names.Kaelyn Uhrain
The main motivation was to do typo correction in C++ "new" statements, though picking it up in other places where type names are expected was pretty much a freebie. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141621 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Clean up DiagnoseInvalidRedeclaration a bitKaelyn Uhrain
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141612 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Move a couple chunks of ActOnFunctionDeclarator to separate functionsKaelyn Uhrain
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141611 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Move some bool flags out of function parameter lists.Kaelyn Uhrain
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141610 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11Only accept a typo correction if it doesn't trigger additional errorsKaelyn Uhrain
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141609 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Don't crash in Sema::IsSimplyAccessible if the declaration is not a C++ ↵Douglas Gregor
class member. Fixes PR11108. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141600 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10When performing a user-defined conversion via a constructor, be sureDouglas Gregor
to check whether the constructor is accessible. Fixes <rdar://problem/10202900>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141588 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Rework construction of CXXForRangeStmt not to recycle the same DeclRefExpr ↵Ted Kremenek
in multiple subexpressions. This breaks the tree structure of the AST and completely breaks the CFG invariants. Patch by Jim Goodnow II and reviewed by Richard Smith! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141586 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10objc: err on a property designated both atomic andFariborz Jahanian
nonatomic. // rdar://10260017 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141580 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10When substituting into a sizeof parameter pack expression in a contextDouglas Gregor
where we can't expand (i.e., multi-level substitution), be sure to substitute the pack with its level-reduced pack. Fixes PR10230. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141568 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Constant expression evaluation refactoring:Richard Smith
- Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions, and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert behaviour. - Factor out evaluation of bitfield bit widths. - Fix a few places which would evaluate an expression twice: once to determine whether it is a constant expression, then again to get the value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141561 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Don't suggest 'noreturn' for function template instantiations, becauseDouglas Gregor
it might be wrong for other instantiations of the same function template. Fixes PR10801. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141559 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Give nicer note when a member redeclaration has or lacks 'const'Kaelyn Uhrain
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141555 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10objc: Some refactoring of overriding method decl. codeFariborz Jahanian
for future work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141553 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Don't analyze comparisons in type- or value-dependentDouglas Gregor
subexpressions. Fixes PR10291. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141552 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Per C++ [class.bit]p2, unnamed bit-fields are not members. Fixes PR10289.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141549 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10constexpr: Disable checking of constructor member initializer lists forRichard Smith
constexpr constructor templates. Such checking is optional, and currently hard to get right since clang doesn't generate implicit member initializers until instantiation (even for non-dependent members). This is needed for clang to accept libstdc++ from g++4.6 in c++0x mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141547 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Don't complain about qualified property or ivar access when theDouglas Gregor
qualifier itself is invalid. Crasher noticed by Fariborz. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141544 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10When adding a direct initializer to a declaration, allow theDouglas Gregor
initializer to update the type of the declaration. For example, this allows us to determine the size of an incomplete array from its initializer. Fixes PR10288. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141543 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Parse the initializer for a class member after handling itsDouglas Gregor
declarator, so that the declarator is in scope for the initializer. Fixes PR9989. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141539 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Always add the built-in overload candidates for operators &&, ||, andDouglas Gregor
!. Fixes PR9865. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141537 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Begin work consolidating ShouldDelete* functions.Sean Hunt
Begin with just default constructors. One note is that as a side effect of this, a conformance test was removed on the basis that this is almost certainly a defect as with most of union initialization. As it is, clang does not implement union initialization close to the standard as it's quite broken as written. I hope to write a paper addressing the issues eventually. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141528 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10Implement the restrictions in C++ [class.friend]p6, which disallowDouglas Gregor
defining a friend function with a qualified name or in a local class. Fixes PR9853. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141524 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09Diagnose attempts to qualify the name of an instance variable orDouglas Gregor
property in an Objective-C++ member access expression. Fixes PR9759. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141522 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09Push "out-of-line" declarations into scope when their lexical/semanticDouglas Gregor
redeclaration contexts are the same, as occurs within linkage specifications. Fixes PR9162. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141521 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09The effective context of a friend function is its lexicalDouglas Gregor
context. Fixes PR9103. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141520 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-09For the various CF and NS attributes, don't complain if the parameterDouglas Gregor
or return types are dependent. Fixes PR9049. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141518 91177308-0d34-0410-b5e6-96231b3b80d8