summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Finish refactoring the transformation of template argument lists,Douglas Gregor2010-12-201-15/+40
| | | | | | centralizing the transformation into two routines. No functionality change. llvm-svn: 122253
* Refactor the transformation of template argument lists to centralizeDouglas Gregor2010-12-201-37/+58
| | | | | | the list traversal. Part 1, no functionality change. llvm-svn: 122252
* When checking a template argument list against a template containingDouglas Gregor2010-12-201-12/+45
| | | | | | | | | | | | a parameter pack, check the parameter pack against each of the template arguments it corresponds to, then pack the converted arguments into a template argument pack. Allows us to use variadic class templates so long as instantiation isn't required, e.g., template<typename... Types> struct Tuple; Tuple<int, float> *t2; llvm-svn: 122251
* Clean up the handling of template argument packs, especially in theDouglas Gregor2010-12-206-118/+105
| | | | | | | area of printing template arguments. The functionality changes here are limited to cases of variadic templates that aren't yet enabled. llvm-svn: 122250
* XFAIL vtable-debug-info.cpp on WIN32 and fix curly brace.Francois Pichet2010-12-201-2/+1
| | | | llvm-svn: 122230
* Emit an error if operator __uuidof() is called on a type with no associated ↵Francois Pichet2010-12-201-0/+25
| | | | | | GUID. llvm-svn: 122226
* Introduce a new type, PackExpansionType, to capture types that areDouglas Gregor2010-12-2012-2/+160
| | | | | | | | | | | | | | | | | | | | pack expansions, e.g. given template<typename... Types> struct tuple; template<typename... Types> struct tuple_of_refs { typedef tuple<Types&...> types; }; the type of the "types" typedef is a PackExpansionType whose pattern is Types&. This commit introduces support for creating pack expansions for template type arguments, as above, but not for any other kind of pack expansion, nor for any form of instantiation. llvm-svn: 122223
* Validate Microsoft's uuid attribute string.Francois Pichet2010-12-201-2/+40
| | | | llvm-svn: 122220
* Add missing standard includes. Patch by Joerg Sonnenberger!Nick Lewycky2010-12-192-0/+2
| | | | llvm-svn: 122194
* 1. Add some ABI information for the Microblaze.Wesley Peck2010-12-192-0/+164
| | | | | | 2. Add attibutes "interrupt_handler" and "save_volatiles" for the Microblaze target. llvm-svn: 122184
* Add support for the Microsoft uuid attribute:Francois Pichet2010-12-192-1/+27
| | | | | | | | example: struct __declspec(uuid("6d5140c1-7436-11ce-8034-00aa006009fa")) test { }; llvm-svn: 122173
* Motions towards simplifying how we deal with attribute-qualified function types.John McCall2010-12-194-77/+205
| | | | llvm-svn: 122162
* If the initializer is an rvalue and the variable is a const reference,Zhongxing Xu2010-12-191-3/+6
| | | | | | create a temporary object for it. llvm-svn: 122161
* The evaluation of dereference and address-of is identical.Zhongxing Xu2010-12-181-14/+1
| | | | llvm-svn: 122146
* Replace all uses of PathV1::get{Basename,Dirname,Suffix} with their PathV2 ↵Michael J. Spencer2010-12-183-19/+13
| | | | | | equivalents. llvm-svn: 122140
* Apply attributes to explicit specializations. Specializations whichJohn McCall2010-12-182-14/+37
| | | | | | | don't provide their own explicit visibility attributes should get them from the template. Fixes rdar://problem/8778497. llvm-svn: 122136
* Replace all uses of PathV1::getLast with PathV2::filename.Michael J. Spencer2010-12-183-13/+11
| | | | llvm-svn: 122117
* Going back to the drawing board with these two awful hacks.Eric Christopher2010-12-171-4/+1
| | | | llvm-svn: 122096
* Warn when synthesizing a property which isFariborz Jahanian2010-12-172-0/+14
| | | | | | | implicitly atomic under -Wimplicit-atomic-properties flag. // rdar://8774580 llvm-svn: 122095
* Fix spelling.Michael J. Spencer2010-12-171-1/+1
| | | | llvm-svn: 122088
* Replace all uses of PathV1::isAbsolute with PathV2::is_{absolute,relative}.Michael J. Spencer2010-12-178-17/+19
| | | | llvm-svn: 122087
* Horrible hack for systems that use -dumpversion with clang to expect versionsEric Christopher2010-12-171-1/+4
| | | | | | that match gcc versions. Eew. llvm-svn: 122080
* Use hasSameType to compare types for equality.Abramo Bagnara2010-12-171-1/+2
| | | | llvm-svn: 122058
* Avoid to emit redundant implicit cast for enum constants init expressions.Abramo Bagnara2010-12-171-1/+1
| | | | llvm-svn: 122056
* Remove explicit summaries from retain/releaseTed Kremenek2010-12-171-26/+0
| | | | | | | checker that are automatically handled now by the Cocoa conventions logic. llvm-svn: 122047
* Fix assertion failure in cocoa::deriveNamingConvention()Ted Kremenek2010-12-171-4/+6
| | | | | | when the selector is the string 'mutable'. llvm-svn: 122046
* fix typoChris Lattner2010-12-171-1/+1
| | | | llvm-svn: 122041
* Move CocoaConventions.[h,cpp] from libCheckerTed Kremenek2010-12-174-3/+3
| | | | | | | | | to libAnalysis. Similar to Format (format string checking), CocoaConventions has the potential to serve clients other than the static analyzer. llvm-svn: 122040
* Revise Cocoa conventions detection: 'copy' and 'mutableCopy'Ted Kremenek2010-12-171-54/+30
| | | | | | | | only indicates the create rule if it starts at the beginning of the method name, not within the method name. llvm-svn: 122036
* Rename several methods/functions in the analyzerTed Kremenek2010-12-172-90/+90
| | | | | | | to start with lowercase characters. No functionality change. llvm-svn: 122035
* Give hidden visibility to RTTI for derived types. This is kindof a hackyJohn McCall2010-12-171-3/+5
| | | | | | way to do this, but it fixes rdar://problem/8778973 llvm-svn: 122033
* Microsoft's __uuidof operator returns a lvalue.Francois Pichet2010-12-171-1/+1
| | | | llvm-svn: 122021
* Do lvalue-to-rvalue conversions on the LHS of a shift operator.John McCall2010-12-161-8/+8
| | | | | | Fixes rdar://problem/8776586. llvm-svn: 121992
* Add tests checking for unexpanded parameter packs in declarations thatDouglas Gregor2010-12-161-1/+10
| | | | | | | occur within statements. Teach Sema::ActOnExceptionDeclarator() to check for unexpanded parameter packs in the exception type. llvm-svn: 121984
* Tweak a commentDouglas Gregor2010-12-161-1/+1
| | | | llvm-svn: 121979
* Delay the check for unexpanded parameter packs in the types ofDouglas Gregor2010-12-161-8/+41
| | | | | | | | non-type template parameters until we know that we have an actual template declaration of some sort. This cannot be tested yet, but will become important when we have template template parameter packs. llvm-svn: 121967
* Check for unexpanded parameter packs in non-type template parameter types.Douglas Gregor2010-12-161-3/+9
| | | | llvm-svn: 121964
* Check for unexpanded parameter packs in default arguments.Douglas Gregor2010-12-163-5/+43
| | | | llvm-svn: 121962
* Start migration of static analyzer to using theTed Kremenek2010-12-1611-555/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implicit lvalue-to-rvalue casts that John McCall recently introduced. This causes a whole bunch of logic in the analyzer for handling lvalues to vanish. It does, however, raise a few issues in the analyzer w.r.t to modeling various constructs (e.g., field accesses to compound literals). The .c/.m analysis test cases that fail are due to a missing lvalue-to-rvalue cast that will get introduced into the AST. The .cpp failures were more than I could investigate in one go, and the patch was already getting huge. I have XFAILED some of these tests, and they should obviously be further investigated. Some highlights of this patch include: - CFG no longer requires an lvalue bit for CFGElements - StackFrameContext doesn't need an 'asLValue' flag - The "VisitLValue" path from GRExprEngine has been eliminated. Besides the test case failures (XFAILed), there are surely other bugs that are fallout from this change. llvm-svn: 121960
* MemoryBuffer API update.Michael J. Spencer2010-12-165-46/+34
| | | | llvm-svn: 121956
* Fix a regression I caused in r121930. It turns out thatDouglas Gregor2010-12-161-3/+7
| | | | | | | DeclarationNameInfo instances don't always have a non-NULL TypeSourceInfo? llvm-svn: 121940
* Check for unexpanded parameter packs within variable initializers.Douglas Gregor2010-12-162-21/+38
| | | | llvm-svn: 121938
* Check for unexpanded parameter packs in friend declarations.Douglas Gregor2010-12-162-0/+13
| | | | llvm-svn: 121934
* Improve diagnostics when property being looked upFariborz Jahanian2010-12-161-0/+6
| | | | | | in a forward @class object. // rdar://8774513 llvm-svn: 121933
* Check for unexpanded parameter packs in using declarations. As aDouglas Gregor2010-12-163-2/+58
| | | | | | | drive-by, make sure to check for unexpanded parameter packs within the name of a declaration. llvm-svn: 121930
* Check for unexpanded parameter packs in enumeration types and enumerators.Douglas Gregor2010-12-161-0/+9
| | | | llvm-svn: 121928
* Check for unexpanded parameter packs in static assertion expressions.Douglas Gregor2010-12-151-0/+3
| | | | llvm-svn: 121922
* Implement builtins for Neon half-precision float conversions.Bob Wilson2010-12-151-1/+10
| | | | | | | Also tweak the VCVT_F32_F16 entry in arm_neon.td to be more consistent with the other floating-point conversion builtins. Radar 8068427. llvm-svn: 121916
* ivars craeted for explicit @synthesize and thoseFariborz Jahanian2010-12-152-2/+2
| | | | | | | created for auto-synthesis are @private. Fixes: // rdar://8769582 llvm-svn: 121913
* Check for unexpanded parameter packs in various kinds ofDouglas Gregor2010-12-152-3/+20
| | | | | | | | declarations. This is a work in progress, as I go through the C++ declaration grammar to identify where unexpanded parameter packs can occur. llvm-svn: 121912
OpenPOWER on IntegriCloud