summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
Commit message (Collapse)AuthorAgeFilesLines
...
* Delete dead code.Eli Friedman2013-06-251-17/+0
| | | | llvm-svn: 184795
* Tweak -Wdeprecated-objc-pointer-introspection to have a subgroup for results ↵Ted Kremenek2013-06-241-1/+14
| | | | | | | | | | | | | of using -performSelectorXXX. -performSelector: and friends return a value that is boxed as an Objective-C pointer. Sometimes it is an Objective-C pointer, sometimes it isn't. Some clients may wish to silence this warning based on calling this method. Fixes <rdar://problem/14147304> llvm-svn: 184789
* [AST] Introduce a new DecayedType sugar nodeReid Kleckner2013-06-243-4/+21
| | | | | | | | | | | | | | The goal of this sugar node is to be able to look at an arbitrary FunctionType and tell if any of the parameters were decayed from an array or function type. Ultimately this is necessary to implement Microsoft's C++ name mangling scheme, which mangles decayed arrays differently from normal pointers. Reviewers: rsmith Differential Revision: http://llvm-reviews.chandlerc.com/D1014 llvm-svn: 184763
* Add the global namespace (the "::" namespace specifier) to the list ofKaelyn Uhrain2013-06-241-1/+7
| | | | | | namespaces to try for potential typo corrections. llvm-svn: 184762
* [Sema] Call CheckParmForFunctionDef on ObjC method parametersReid Kleckner2013-06-242-5/+6
| | | | | | | CheckParmForFunctionDef performs standard checks for type completeness and other things like a destructor check for the MSVC++ ABI. llvm-svn: 184740
* ArrayRef'ize Sema::CodeCompleteConstructorInitializerDmitri Gribenko2013-06-231-14/+14
| | | | | | Patch by Robert Wilhelm. llvm-svn: 184675
* Fix assert if an attempt is made to explicitly instantiate an alias template.Richard Smith2013-06-221-3/+11
| | | | | | Patch by Ismail Pazarbasi! llvm-svn: 184650
* Revert r184401 which reverted r183462.David Majnemer2013-06-221-25/+34
| | | | | | | | | | | | The problem with r183462 was that we assumed that a diagnostic id of zero would be silent. This small correction to CheckDerivedToBaseConversion changes it's behavior to omit the diagnostic when given a diagnostic id of zero. This fix passes the test case added in r184402. llvm-svn: 184631
* Extend -Wnon-pod-varargs to check calls made from member pointers.Richard Trieu2013-06-222-1/+5
| | | | llvm-svn: 184629
* Extend -Wnon-pod-varargs to more cases, such as function pointers as returnRichard Trieu2013-06-222-15/+40
| | | | | | types and function pointer arrays. llvm-svn: 184616
* Provide suggested no-arg calls for overloaded member functions missing callsDavid Blaikie2013-06-212-16/+32
| | | | | | Reviewed by Richard Smith. llvm-svn: 184612
* Propagate the invalid bit from bases to derived template classes.Matt Beaumont-Gay2013-06-211-0/+4
| | | | | | Fixes PR16292. llvm-svn: 184581
* [ms-cxxabi] Destroy temporary record arguments in the calleeReid Kleckner2013-06-211-0/+9
| | | | | | | | | | | | | | | | | | Itanium destroys them in the caller at the end of the full expression, but MSVC destroys them in the callee. This is further complicated by the need to emit EH-only destructor cleanups in the caller. This should help clang compile MSVC's debug iterators more correctly. There is still an outstanding issue in PR5064 of a memcpy emitted by the LLVM backend, which is not correct for C++ records. Fixes PR16226. Reviewers: rjmccall Differential Revision: http://llvm-reviews.chandlerc.com/D929 llvm-svn: 184543
* Delete dead code.Eli Friedman2013-06-211-7/+0
| | | | llvm-svn: 184520
* Delete dead code.Eli Friedman2013-06-211-4/+1
| | | | llvm-svn: 184517
* When building a module, keep *all* declared methods in the global method pool.Douglas Gregor2013-06-211-0/+4
| | | | | | | | | | | | | | | | | As an optimization, we only kept declared methods with distinct signatures in the global method pool, to keep the method lists small. Under modules, however, one could have two different methods with the same signature that occur in different (sub)modules. If only the later submodule is important, message sends to 'id' with that selector would fail because the first method (the only one that got into the method pool) was hidden. When building a module, keep *all* of the declared methods. I did a quick check of both module build time and uses of modules, and found no performance regression despite this causing us to keep more methods in the global method pool. Fixes <rdar://problem/14148896>. llvm-svn: 184504
* Add back a condition accidentially removed in r184470.Richard Trieu2013-06-201-1/+1
| | | | llvm-svn: 184496
* Don't allow __attribute__((common)) in C++. PR16330.Eli Friedman2013-06-201-0/+6
| | | | llvm-svn: 184493
* Avoid repeatedly evaluating subexpressions when checking for unsequencedRichard Smith2013-06-201-7/+37
| | | | | | | operations in the case where evaluating a subexpression fails. No functionality change, but test/Sema/many-logical-ops.c gets ~100x faster with this change. llvm-svn: 184489
* Lazily provide a __float128 dummy type in -std=gnu++11 mode.Nico Weber2013-06-203-1/+21
| | | | | | This is needed to parse libstdc++ 4.7's type_traits, see PR13530. llvm-svn: 184476
* Extend -Wnon-pod-varargs to check calls made from function pointers.Richard Trieu2013-06-202-6/+12
| | | | llvm-svn: 184470
* Clean up warning and add a test.Eli Friedman2013-06-201-2/+2
| | | | llvm-svn: 184466
* Remove dead code.Eli Friedman2013-06-201-5/+0
| | | | llvm-svn: 184453
* Improved source code fidelity for gcc mode attribute.Enea Zaffanella2013-06-201-4/+7
| | | | llvm-svn: 184417
* Temporarily revert r183462: "Implement DR7"Chandler Carruth2013-06-201-12/+5
| | | | | | This fixes PR16370, I'll add the test case in a follow-up commit. llvm-svn: 184401
* Fix one place I missed that was memcpy'ing TypeLocs in a way that messesEli Friedman2013-06-202-2/+62
| | | | | | | | | up alignment. Fixes utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp from the libc++ testsuite. llvm-svn: 184397
* Add a workaround for a libstdc++-4.2 <tr1/hashtable> bug. This header usesRichard Smith2013-06-201-3/+23
| | | | | | | | | | return false; in a function returning a pointer. 'false' was a null pointer constant in C++98 but is not in C++11. Punch a very small hole in the initialization rules in C++11 mode to allow this specific case in system headers. llvm-svn: 184395
* Remove dead code.Eli Friedman2013-06-191-10/+0
| | | | llvm-svn: 184379
* Improve diagnostic for redeclaring static member function. Fixes PR16382.Eli Friedman2013-06-191-1/+1
| | | | llvm-svn: 184378
* Delete dead code. (Array element types are always complete in C.)Eli Friedman2013-06-191-7/+0
| | | | llvm-svn: 184332
* [Windows] Fix __declspec(property) when the getter returns a refReid Kleckner2013-06-191-1/+2
| | | | | | | | This fixes an issue when parsing atlbase.h. Patch by Will Wilson! llvm-svn: 184319
* Fix pr16354.Rafael Espindola2013-06-191-1/+21
| | | | | | | | | | | We now reject things like struct ABC { static double a; }; register double ABC::a = 1.0; llvm-svn: 184300
* Silence 'set but not used' warning when building in release mode using gcc.Andy Gibbs2013-06-191-0/+1
| | | | llvm-svn: 184299
* Delete dead code.Eli Friedman2013-06-191-37/+0
| | | | llvm-svn: 184277
* Introduce a new mangling for protocol-qualified ObjC types in C++. This allowsEli Friedman2013-06-181-36/+3
| | | | | | | | | | | | to provide proper overloading, and also prevents mangling conflicts with template arguments of protocol-qualified type. This is a non-backward-compatible mangling change, but per discussion with John, the benefits outweigh this cost. Fixes <rdar://problem/14074822>. llvm-svn: 184250
* When declaring an ObjC interface decl with a @compatibility_alias alias ↵Argyrios Kyrtzidis2013-06-181-1/+36
| | | | | | | | | | | | | | | | | | name, change the class name to the "real" one. If we have something like @class NewImage; @compatibility_alias OldImage NewImage; @class OldImage; the lookup for 'OldImage' will return the 'NewImage' decl ("@class NewImage"). In such a case, when creating the decl for "@class OldImage" use the real declaration name ("NewImage"), instead of the alias one ("OldImage"), otherwise we will break IdentifierResolver and redecls-chain invariants. Fixes crash of rdar://14112291. llvm-svn: 184238
* DR14, DR101, and part of DR1: fix handling of extern "C" declarations inRichard Smith2013-06-181-34/+40
| | | | | | | namespaces, by treating them just like we treat extern "C" declarations in function scope. llvm-svn: 184223
* Correctly compute the index of the first string format argument when decidingEli Friedman2013-06-181-1/+1
| | | | | | whether to emit a -Wformat-security warning. <rdar://problem/14178260>. llvm-svn: 184214
* Objective-C: Fixes a typo correction bug where aFariborz Jahanian2013-06-182-3/+5
| | | | | | | selector would be correted to identical selector name in certain corner cases. // rdar://7853549 llvm-svn: 184208
* Objective-C [qoi]: privide typo correction for selectorsFariborz Jahanian2013-06-182-15/+39
| | | | | | | | in addition of receiver having static type, but also when receiver has dynamic type (of 'id' variety) as well as when receiver is of 'Class' type vareity. // rdar://7853549 llvm-svn: 184195
* contextual conversion fix: C++98 compatibility warning.Larisse Voufo2013-06-181-2/+3
| | | | llvm-svn: 184167
* r184100 Fix -- Updated test cases for contextual conversionLarisse Voufo2013-06-181-3/+3
| | | | llvm-svn: 184165
* Delete dead code.Eli Friedman2013-06-181-36/+0
| | | | llvm-svn: 184154
* Revert "Updated test cases for contextual conversion"Rafael Espindola2013-06-171-3/+3
| | | | | | | | | This reverts commit r184100. It was faling on some bots: http://bb.pgr.jp/builders/cmake-clang-i686-mingw32/builds/1973/steps/test_clang/logs/Clang%20%3A%3A%20SemaCXX__cxx1y-contextual-conversion-tweaks.cpp llvm-svn: 184108
* Updated test cases for contextual conversionLarisse Voufo2013-06-171-3/+3
| | | | llvm-svn: 184100
* Clean up empty struct/union recognition.Serge Pavlov2013-06-171-13/+15
| | | | | | | | | Make use of getTypeSizeInChars to detect structs/unions of zero size. It allows more accurate detection of types of zero size. It however has a side effect - sequence of used types may change, that is why the test 'override-layout' was modified. llvm-svn: 184088
* Objective-C [qoi]: Provide fixit hint when message with typoFariborz Jahanian2013-06-172-5/+31
| | | | | | is sent to a receiver object. This is wip. // rdar://7853549 llvm-svn: 184086
* C++11: don't warn about the deprecated 'register' keyword if it's combined withRichard Smith2013-06-171-2/+12
| | | | | | an asm label. llvm-svn: 184069
* ArrayRef'ize Sema::CodeComplete*Dmitri Gribenko2013-06-161-76/+59
| | | | | | Patch by Robert Wilhelm. llvm-svn: 184052
* Updated the support for contextual conversion tweaks (n3323) with a ↵Larisse Voufo2013-06-151-56/+85
| | | | | | previously overlooked part: implicitly converting array sizes to size_t, rather than contextually converting them to some unique type. llvm-svn: 184048
OpenPOWER on IntegriCloud