aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema
AgeCommit message (Collapse)Author
2012-05-31In TypoCorrectionConsumer, BestResults to CorrectionResults to lessenKaelyn Uhrain
the confusion among all of the uses of Best* in relation to the set of possible typo correction results. Also add a method to return the set of typo corrections that have the single best edit distance--it returns the second half of the first pair in TypoEditDistanceMap (with getBestEditDistance already returning the first half). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157781 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-31objc: properties of NSObject attribute mustFariborz Jahanian
have correct pointer type or issue error, instead of crashing in IRGen. // rdar:// 11569860 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157780 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-30Change wording of 'memcpy' type mismatch warning and remove fixit.Anna Zaks
As per comments following r157659. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157722 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-30Disable -Wunique-enum for anonymous enums.David Blaikie
This is a large class of false positives where anonymous enums are used to declare constants (see Clang's Diagnostics.h for example). A small number of true positives could probably be found in this bucket by still warning if the anonymous enum is used in a declarator (enum { ... } x;) but so far we don't believe this to be a source of significant benefit so I haven't bothered to preserve those cases. General offline review/acknowledgment by rtrieu. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157713 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-30objective-c: revert r157407. It broke a projectFariborz Jahanian
and reported as PR12959. // rdar://11499742 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157697 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-30Remove some extra braces.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157667 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-30Add new -Wunique-enum which will warn on enums which all elements have theRichard Trieu
same value and were initialized with literals. Clang will warn on code like this: enum A { FIRST = 1, SECOND = 1 }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157666 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-30Add fixits for memory access warnings.Anna Zaks
Also, do not display the builtin name and macro expansion when the function is a builtin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157659 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-29objective-c: fix a sema and IRGen crash when propertyFariborz Jahanian
getter result type is safe but does not match with property type resulting in spurious warning followed by crash in IRGen. // rdar://11515196 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157641 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-28Fix PR12960 by not attempting to correct cases when we're not actually ↵David Blaikie
instantiatiating a template. This comes up in the begin/end calls of a range-for (see the included test case). Other suggestions are welcome, though this seems to do the trick without regressing anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157553 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-27-Wdeprecated warning to include reference (as a note)Fariborz Jahanian
to the declaration in this patch. // rdar://10893232 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157537 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-27Use the SelectorSet typedef more widely throughout Sema.Benjamin Kramer
While there make it a SmallPtrSet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157532 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-26Change warning to error when property setter names conflict.Fariborz Jahanian
// rdar://11528439 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157517 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-26In response to some discussions on IRC, tweak the wording of the newRichard Smith
-Wsometimes-uninitialized diagnostics to make it clearer that the cause of the issue may be a condition which must always evaluate to true or false, rather than an uninitialized variable. To emphasize this, add a new note with a fixit which removes the impossible condition or replaces it with a constant. Also, downgrade the diagnostic from -Wsometimes-uninitialized to -Wconditional-uninitialized when it applies to a range-based for loop, since the condition is not written explicitly in the code in that case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157511 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-26Fix indentation.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157510 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-26Don't offer '[[clang::fallthrough]];' fix-it when a fall-through occurs to aAlexander Kornienko
switch label immediately followed by a 'break;'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157508 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-25Split a chunk of -Wconditional-uninitialized warnings out into a separate flag,Richard Smith
-Wsometimes-uninitialized. This detects cases where an explicitly-written branch inevitably leads to an uninitialized variable use (so either the branch is dead code or there is an uninitialized use bug). This chunk of warnings tentatively lives within -Wuninitialized, in order to give it more visibility to existing Clang users. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157458 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-24Some cleanups around the uninitialized variables warning, and a FIXME. No ↵Richard Smith
functional change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157440 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-24objective-c: warn on use of property settersFariborz Jahanian
backing two propeties because proprty names match except for first letter being of different case. // rdar://11528439, [PR12936]. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157435 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-24Get rid of some non-ASCII en-dashes that crept in.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157434 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-24Implement the C++11 discarded value expression rules for volatile lvalues. ↵Eli Friedman
<rdar://problem/10790820>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157420 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-24objective-c: Fixes a corner case and interesting bug.Fariborz Jahanian
Where diagnostic about unfound property is not issued in the context where a setter is looked up in situation in which name and property name differ in their first letter case. // rdar://11363363 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157407 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-24DR1152 / PR12931 / PR6177: A candidate function which requires binding a constRichard Smith
volatile reference to a temporary is not viable. My interpretation is that DR1152 was a bugfix, not a rule change for C++11, so this is not conditional on the language mode. This matches g++'s behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157370 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-24Add a warning to diagnose statements in C++ like "*(volatile int*)x;". ↵Eli Friedman
Conceptually, this is part of -Wunused-value, but I added a separate flag -Wunused-volatile-lvalue so it doesn't get turned off by accident with -Wno-unused-value. I also made a few minor improvements to existing unused value warnings in the process. <rdar://problem/11516811>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157362 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-24implement Sema support for the alloc_size attributeNuno Lopes
Portions of this patch by Xi Wang. Reviewed by Jordy Rose. Thank you both. Codegen support will follow soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157360 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-23Correct the starting location for instantiations of field declarations whichRichard Smith
start with a cv-qualifier. DeclaratorDecl::getTypeSpecStartLoc() does not produce the location of the first type-specifier (the cv-qualifier) in this case, because we don't track source locations for cv-qualifiers. No test here: I've not found a way to test this with a lit-style test, and introducing a gtest test for this seems unwarranted. Suggestions welcome! Patch by Daniel Jasper! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157311 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22Recognize the MS inheritance attributes and turn them into attributesJohn McCall
on the RecordDecl. Persist the MS portability type attributes and ignore them in Sema rather than the parser. Patch by João Matos! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157288 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21Remove unused argument in my last patch.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157194 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21objective-c: When default synthesizing readonly IBOutlet propertiesFariborz Jahanian
provide a 'fixit' to change 'readonly' to 'readwrite'. // rdar://11448209 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157193 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20Bitpack CodeCompletionResults.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157158 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20Error when using typeid() with -fno-rtti. PR 12888.Nico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157139 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-19Make delegating initializers use a similar codepath to base initializers in ↵Eli Friedman
dependent contexts. PR12890. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157136 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-19objective-c: Warn if default synthesizing readonly IBOutlet propertiesFariborz Jahanian
and provide a 'fixit' to change 'readonly' to 'readwrite'. 'fixit' part needs little more work. // rdar://11448209 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157121 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-19Apparently empty names are allowed here.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157117 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-19Simplify some users of DeclarationName::getNameKind. Fold ↵Benjamin Kramer
getFETokenInfoAsVoid into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157116 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-19Inline a trivial clear() method.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157114 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-18Suggest adding 'typename' when it would make the compilerKaelyn Uhrain
accept the template argument expression as a type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157085 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-18Centralize the handling of the "attribute declaration must precede definition"Rafael Espindola
warning. This also makes us warn on tags, which, ironically, is the only case gcc warns on. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157039 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-17A selector match between two Objective-C methods does *not* guaranteeDouglas Gregor
that the methods have the same number of parameters, although we certainly assumed this in many places. Objective-C can be insane sometimes. Fixes <rdar://problem/11460990>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157025 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-17In the override search for Objective-C methods, protect against ASTs that ↵Douglas Gregor
have NULL interfaces behind a category, which can happen in invalid code. Fixes <rdar://problem/11478173>, a recent regression git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157021 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-17CXXThisScopeRAII objects aren't free, don't compute one if it's unused.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156987 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-17Use the argument location instead of the format string location when warningMatt Beaumont-Gay
about argument type mismatch. This gives a nicer diagnostic in cases like printf(fmt, i); where previously the snippet just pointed at 'fmt' (with a note at the definition of fmt). It's a wash for cases like printf("%f", i); where previously we snippeted the offending portion of the format string, but didn't indicate which argument was at fault. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156968 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-16Clean up r156925, so that we only mark the capturing DeclRefExpr of aDouglas Gregor
lambda as referring to a local in an enclosing scope if we're in the enclosing scope of the lambda (not it's function call operator). Also, turn the test into an IR generation test, since that's where the crashes occurred. Really fixes PR12746 / <rdar://problem/11465120>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156926 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-16Fix code generation of variables reference expressions when mixingDouglas Gregor
blocks and lambdas, based heavily on a patch from Meador Inge. Fixes PR12746 / <rdar://problem/11465120>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156925 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-16Use a llvm::SmallString rather than std::string for duplicate-case errorsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156922 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-16StringSwitchify. No functionality change.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156916 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-16Factor sema for attributes unavailable and deprecated into a common function.Benjamin Kramer
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156914 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-16Produce more useful 'duplicate case' diagnostics. Fixes PR9243, from Terry Long!Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156904 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-16Include the correct conversion context locations for condition expressions.David Blaikie
This improves the conversion diagnostics (by correctly pointing to the loop construct for conversions that may've been caused by the contextual conversion to bool caused by a condition expression) and also causes the NULL conversion warnings to be correctly suppressed when crossing a macro boundary in such a context. (previously, since the conversion context location was incorrect, the suppression could not be performed) Reported by Nico Weber as feedback to r156826. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156901 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-16[libclang/AST] Index references of protocols in "@protocol(...)" syntax.Argyrios Kyrtzidis
To do that, keep track of the location of the protocol id in the ObjCProtocolExpr AST node. rdar://11190837 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156890 91177308-0d34-0410-b5e6-96231b3b80d8