summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't try to compute the value of a value-dependent expression whenDouglas Gregor2010-12-212-0/+13
| | | | | | checking trivial comparisons. Fixes PR8795. llvm-svn: 122322
* Initialize LangOptions::MSCVersion. Thanks to Csaba Raduly for noting the ↵Douglas Gregor2010-12-211-1/+2
| | | | | | omission llvm-svn: 122318
* Add back the late-specified return type paperDouglas Gregor2010-12-211-0/+9
| | | | llvm-svn: 122317
* Updates to the C++ status page for C++0x features, from Michael PriceDouglas Gregor2010-12-211-27/+456
| | | | llvm-svn: 122315
* Add IndirectField case in DeclContextPrinter::PrintDeclContext.Francois Pichet2010-12-211-0/+5
| | | | | | Fix PR8832. llvm-svn: 122311
* add missing newlines at end of file.Chris Lattner2010-12-215-5/+5
| | | | llvm-svn: 122309
* Implement instantiation of pack expansions whose pattern is a type-idDouglas Gregor2010-12-216-84/+196
| | | | | | in an exception specification. llvm-svn: 122297
* Fix the noreturn conversion to only strip off a single level of indirection.John McCall2010-12-214-65/+47
| | | | | | | Apply the noreturn attribute while creating a builtin function's type. Remove the getNoReturnType() API. llvm-svn: 122295
* Warn when message is sent to receiver ofFariborz Jahanian2010-12-217-16/+96
| | | | | | | | unknown type and there is a possibility that at runtime method is resolved to a deprecated or unavailable method. Addreses // rdar://8769853 llvm-svn: 122294
* Extend the parser to support pack expansions within exceptionDouglas Gregor2010-12-202-2/+31
| | | | | | | specifications. We can't yet instantiate them, however, since I tripped over PR8835. llvm-svn: 122292
* Further refactoring of the tree transformation for template argumentDouglas Gregor2010-12-201-42/+164
| | | | | | | | | | | | | lists, so that all such transformations go through a single, iterator-based transformation function. This is the only place where we need to implement the logic for transforming pack expansions whose pattern is a template argument. Unfortunately, the new cases this refactoring brings into the fold can't be meaningfully tested yet. We need template argument deduction to work well enough for variadic function templates first. llvm-svn: 122289
* Give the RecursiveASTVisitor a configuration functionDouglas Gregor2010-12-202-4/+11
| | | | | | | | | | | shouldWalkTypesOfTypeLocs() that determines whether it should walk the Types within TypeLocs. This walk is redundant, but perhaps required for some clients. Disabling this redundant walk in the unexpanded parameter pack finder produces better results, because we get parameter packs with source location info *unless* such source location information isn't available. llvm-svn: 122287
* Handle instantiation of template type parameter packs that occur asDouglas Gregor2010-12-201-2/+18
| | | | | | | the first qualifier in scope. We can't adequately test this test, unfortunately. llvm-svn: 122283
* Test template instantiation of pack expansions where the parameter pack is ↵Douglas Gregor2010-12-201-3/+16
| | | | | | in a nested-name-specifier llvm-svn: 122282
* Fix PR8639 by making the "argument unused during compilation" less ↵Rafael Espindola2010-12-202-22/+16
| | | | | | | | agressive. Now we don't warn if an argument is not used because it is shadowed by a subsequent argument. llvm-svn: 122281
* Clean up the printing of template argument packs; previously, we wereDouglas Gregor2010-12-204-10/+24
| | | | | | getting extra "<>" delimiters around template argument packs. llvm-svn: 122280
* Implement basic support for template instantiation of pack expansionsDouglas Gregor2010-12-2012-37/+457
| | | | | | | | | | | | | | | | | whose patterns are template arguments. We can now instantiate, e.g., typedef tuple<pair<OuterTypes, InnerTypes>...> type; where OuterTypes and InnerTypes are template type parameter packs. There is a horrible inefficiency in TemplateArgumentLoc::getPackExpansionPattern(), where we need to create copies of TypeLoc data because our interfaces traffic in TypeSourceInfo pointers where they should traffic in TypeLocs instead. I've isolated in efficiency in this one routine; once we refactor our interfaces to traffic in TypeLocs, we can eliminate it. llvm-svn: 122278
* Rename 'VisitLocation' to 'visitLocation'.Ted Kremenek2010-12-205-16/+12
| | | | llvm-svn: 122271
* Rename 'Generate[Node,Sink]' to 'generate[Node,Sink]'.Ted Kremenek2010-12-2035-92/+92
| | | | llvm-svn: 122270
* Remove unused variableMatt Beaumont-Gay2010-12-201-2/+0
| | | | llvm-svn: 122257
* 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-202-12/+54
| | | | | | | | | | | | 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-208-122/+111
| | | | | | | area of printing template arguments. The functionality changes here are limited to cases of variadic templates that aren't yet enabled. llvm-svn: 122250
* Adding a line for XFAIL win32 broke the test.Francois Pichet2010-12-201-1/+0
| | | | | | Remove a line: this test is line position sensitive. llvm-svn: 122231
* XFAIL vtable-debug-info.cpp on WIN32 and fix curly brace.Francois Pichet2010-12-202-3/+6
| | | | llvm-svn: 122230
* test/PCH/reloc.c fails on Win32. Francois Pichet2010-12-201-0/+1
| | | | | | XFAIL for now, I'll investigate why later. llvm-svn: 122229
* Disable this test on Windows; it crashes and popup an dialog on each lit ↵Francois Pichet2010-12-201-0/+5
| | | | | | | | test run. I have no idea how to fix it. llvm-svn: 122227
* Emit an error if operator __uuidof() is called on a type with no associated ↵Francois Pichet2010-12-204-45/+76
| | | | | | GUID. llvm-svn: 122226
* Introduce a new type, PackExpansionType, to capture types that areDouglas Gregor2010-12-2023-7/+316
| | | | | | | | | | | | | | | | | | | | 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-203-3/+51
| | | | llvm-svn: 122220
* Add missing standard includes. Patch by Joerg Sonnenberger!Nick Lewycky2010-12-197-2/+9
| | | | llvm-svn: 122194
* 1. Add some ABI information for the Microblaze.Wesley Peck2010-12-193-0/+172
| | | | | | 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-194-1/+34
| | | | | | | | 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-195-87/+209
| | | | llvm-svn: 122162
* If the initializer is an rvalue and the variable is a const reference,Zhongxing Xu2010-12-192-4/+7
| | | | | | 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-184-21/+15
| | | | | | equivalents. llvm-svn: 122140
* Fix test. I added one last test and then forget to re-check.John McCall2010-12-181-1/+1
| | | | llvm-svn: 122137
* Apply attributes to explicit specializations. Specializations whichJohn McCall2010-12-183-14/+92
| | | | | | | 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-185-18/+15
| | | | llvm-svn: 122117
* Going back to the drawing board with these two awful hacks.Eric Christopher2010-12-173-9/+1
| | | | llvm-svn: 122096
* Warn when synthesizing a property which isFariborz Jahanian2010-12-177-5/+40
| | | | | | | 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
* Initialize variables in the correct order.Bill Wendling2010-12-171-1/+1
| | | | llvm-svn: 122084
* Encapsulate TemplateArgument::KindDouglas Gregor2010-12-171-15/+20
| | | | llvm-svn: 122083
* Horrible hack for systems that use -dumpversion with clang to expect versionsEric Christopher2010-12-172-1/+8
| | | | | | that match gcc versions. Eew. llvm-svn: 122080
* Nom nom nom, tasty unused option with an argument.Eric Christopher2010-12-171-0/+1
| | | | llvm-svn: 122079
* Swap the order of the condition and body of a do-while statement inDouglas Gregor2010-12-172-2/+23
| | | | | | the AST, so that we visit them in source order. Fixes <rdar://problem/8779113>. llvm-svn: 122062
OpenPOWER on IntegriCloud