aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-12-21Fix the noreturn conversion to only strip off a single level of indirection.John McCall
Apply the noreturn attribute while creating a builtin function's type. Remove the getNoReturnType() API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122295 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-21Warn when message is sent to receiver ofFariborz Jahanian
unknown type and there is a possibility that at runtime method is resolved to a deprecated or unavailable method. Addreses // rdar://8769853 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122294 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Extend the parser to support pack expansions within exceptionDouglas Gregor
specifications. We can't yet instantiate them, however, since I tripped over PR8835. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122292 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Further refactoring of the tree transformation for template argumentDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122289 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Give the RecursiveASTVisitor a configuration functionDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122287 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Handle instantiation of template type parameter packs that occur asDouglas Gregor
the first qualifier in scope. We can't adequately test this test, unfortunately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122283 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Test template instantiation of pack expansions where the parameter pack is ↵Douglas Gregor
in a nested-name-specifier git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122282 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Fix PR8639 by making the "argument unused during compilation" less ↵Rafael Espindola
agressive. Now we don't warn if an argument is not used because it is shadowed by a subsequent argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122281 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Clean up the printing of template argument packs; previously, we wereDouglas Gregor
getting extra "<>" delimiters around template argument packs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122280 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Implement basic support for template instantiation of pack expansionsDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122278 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Rename 'VisitLocation' to 'visitLocation'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122271 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Rename 'Generate[Node,Sink]' to 'generate[Node,Sink]'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122270 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Remove unused variableMatt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122257 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Finish refactoring the transformation of template argument lists,Douglas Gregor
centralizing the transformation into two routines. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122253 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Refactor the transformation of template argument lists to centralizeDouglas Gregor
the list traversal. Part 1, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122252 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20When checking a template argument list against a template containingDouglas Gregor
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; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122251 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Clean up the handling of template argument packs, especially in theDouglas Gregor
area of printing template arguments. The functionality changes here are limited to cases of variadic templates that aren't yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122250 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Adding a line for XFAIL win32 broke the test.Francois Pichet
Remove a line: this test is line position sensitive. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122231 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20XFAIL vtable-debug-info.cpp on WIN32 and fix curly brace.Francois Pichet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122230 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20test/PCH/reloc.c fails on Win32. Francois Pichet
XFAIL for now, I'll investigate why later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122229 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Disable this test on Windows; it crashes and popup an dialog on each lit ↵Francois Pichet
test run. I have no idea how to fix it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122227 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Emit an error if operator __uuidof() is called on a type with no associated ↵Francois Pichet
GUID. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122226 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Introduce a new type, PackExpansionType, to capture types that areDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122223 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-20Validate Microsoft's uuid attribute string.Francois Pichet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122220 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-19Add missing standard includes. Patch by Joerg Sonnenberger!Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122194 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-191. Add some ABI information for the Microblaze.Wesley Peck
2. Add attibutes "interrupt_handler" and "save_volatiles" for the Microblaze target. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122184 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-19Add support for the Microsoft uuid attribute:Francois Pichet
example: struct __declspec(uuid("6d5140c1-7436-11ce-8034-00aa006009fa")) test { }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122173 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-19Motions towards simplifying how we deal with attribute-qualified function types.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122162 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-19If the initializer is an rvalue and the variable is a const reference,Zhongxing Xu
create a temporary object for it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122161 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-18The evaluation of dereference and address-of is identical.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122146 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-18Replace all uses of PathV1::get{Basename,Dirname,Suffix} with their PathV2 ↵Michael J. Spencer
equivalents. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122140 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-18Fix test. I added one last test and then forget to re-check.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122137 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-18Apply attributes to explicit specializations. Specializations whichJohn McCall
don't provide their own explicit visibility attributes should get them from the template. Fixes rdar://problem/8778497. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122136 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-18Replace all uses of PathV1::getLast with PathV2::filename.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122117 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Going back to the drawing board with these two awful hacks.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122096 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Warn when synthesizing a property which isFariborz Jahanian
implicitly atomic under -Wimplicit-atomic-properties flag. // rdar://8774580 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122095 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Fix spelling.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122088 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Replace all uses of PathV1::isAbsolute with PathV2::is_{absolute,relative}.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122087 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Initialize variables in the correct order.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122084 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Encapsulate TemplateArgument::KindDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122083 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Horrible hack for systems that use -dumpversion with clang to expect versionsEric Christopher
that match gcc versions. Eew. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122080 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Nom nom nom, tasty unused option with an argument.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122079 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Swap the order of the condition and body of a do-while statement inDouglas Gregor
the AST, so that we visit them in source order. Fixes <rdar://problem/8779113>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122062 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Use hasSameType to compare types for equality.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122058 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Avoid to emit redundant implicit cast for enum constants init expressions.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122056 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Update checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122051 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Remove explicit summaries from retain/releaseTed Kremenek
checker that are automatically handled now by the Cocoa conventions logic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122047 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Fix assertion failure in cocoa::deriveNamingConvention()Ted Kremenek
when the selector is the string 'mutable'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122046 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17fix typoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122041 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-17Move CocoaConventions.[h,cpp] from libCheckerTed Kremenek
to libAnalysis. Similar to Format (format string checking), CocoaConventions has the potential to serve clients other than the static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122040 91177308-0d34-0410-b5e6-96231b3b80d8