- Dec 16, 2010
-
-
Michael J. Spencer authored
llvm-svn: 121956
-
Daniel Dunbar authored
llvm-svn: 121950
-
Douglas Gregor authored
DeclarationNameInfo instances don't always have a non-NULL TypeSourceInfo? llvm-svn: 121940
-
Douglas Gregor authored
llvm-svn: 121938
-
Douglas Gregor authored
llvm-svn: 121934
-
Fariborz Jahanian authored
in a forward @class object. // rdar://8774513 llvm-svn: 121933
-
Douglas Gregor authored
drive-by, make sure to check for unexpanded parameter packs within the name of a declaration. llvm-svn: 121930
-
Douglas Gregor authored
llvm-svn: 121928
-
Douglas Gregor authored
llvm-svn: 121922
-
Bob Wilson authored
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
-
Fariborz Jahanian authored
created for auto-synthesis are @private. Fixes: // rdar://8769582 llvm-svn: 121913
-
Douglas Gregor authored
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
-
- Dec 15, 2010
-
-
Douglas Gregor authored
information for all of the explicit casts. llvm-svn: 121900
-
Douglas Gregor authored
unexpanded parameter pack" bit and that the recursive AST visitor can then find those unexpanded parameter packs. llvm-svn: 121899
-
Douglas Gregor authored
parameter packs within a statement, type, etc. Use this visitor to provide improved diagnostics for the presence of unexpanded parameter packs in a full expression, base type, declaration type, etc., by highlighting the unexpanded parameter packs and providing their names, e.g., test/CXX/temp/temp.decls/temp.variadic/p5.cpp:28:85: error: declaration type contains unexpanded parameter packs 'VeryInnerTypes', 'OuterTypes', ... ...VeryInnerTypes, OuterTypes>, pair<InnerTypes, OuterTypes> > types; ~~~~~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ^ llvm-svn: 121883
-
Argyrios Kyrtzidis authored
Diagnostic pragmas are broken because we don't keep track of the diagnostic state changes and we only check the current/latest state. Problems manifest if a diagnostic is emitted for a source line that has different diagnostic state than the current state; this can affect a lot of places, like C++ inline methods, template instantiations, the lexer, etc. Fix the issue by having the Diagnostic object keep track of the source location of the pragmas so that it is able to know what is the diagnostic state at any given source location. Fixes rdar://8365684. llvm-svn: 121873
-
Douglas Gregor authored
Move the work-in-progress implementation of variadic templates to its own file in Sema. No functionality change. llvm-svn: 121869
-
John McCall authored
come first. llvm-svn: 121866
-
Douglas Gregor authored
parameters. Fixes <rdar://problem/8769025>. llvm-svn: 121864
-
Peter Collingbourne authored
BuildExpressionFromIntegralTemplateArgument can produce malformed IntegerLiterals with an EnumType if the template parameter type is an EnumType. This breaks the AST printer which expects all IntegerLiterals to have a plain integer type. Instead, give the IntegerLiteral the enum's promotion type and wrap in an implicit cast to the EnumType. llvm-svn: 121862
-
Chandler Carruth authored
Silence GCC warning about control reaching the end of the function and explicitly mark that all cases are handled. llvm-svn: 121855
-
Nico Weber authored
llvm-svn: 121852
-
John McCall authored
future task of performing contextual conversion to size_t in a VLA size expression. :) llvm-svn: 121836
-
John McCall authored
within the class. Teach IR gen to look for function definitions in record lexical contexts when deciding whether to emit a function whose address was taken. Fixes PR8789. llvm-svn: 121833
-
Douglas Gregor authored
whether the expression contains an unexpanded parameter pack, in the same vein as the changes to the Type hierarchy. Compute this bit within all of the Expr subclasses. This change required a bunch of reshuffling of dependency calculations, mainly to consolidate them inside the constructors and to fuse multiple loops that iterate over arguments to determine type dependence, value dependence, and (now) containment of unexpanded parameter packs. Again, testing is painfully sparse, because all of the diagnostics will change and it is more important to test the to-be-written visitor that collects unexpanded parameter packs. llvm-svn: 121831
-
John McCall authored
llvm-svn: 121821
-
- Dec 14, 2010
-
-
Abramo Bagnara authored
llvm-svn: 121795
-
John McCall authored
the basic casting logic to insert intermediate casts and preserve the exact complex-cast design. Fixes a crash in the test suite. llvm-svn: 121776
-
Douglas Gregor authored
llvm-svn: 121771
-
John McCall authored
by valgrind where we were doing the wrong thing in the presence of invalid exception specs. llvm-svn: 121770
-
Douglas Gregor authored
llvm-svn: 121768
-
John McCall authored
llvm-svn: 121763
-
John McCall authored
llvm-svn: 121759
-
John McCall authored
class to be passed around. The line between argument and return types and everything else is kindof vague, but I think it's justifiable. llvm-svn: 121752
-
Dan Gohman authored
llvm-svn: 121742
-
Dan Gohman authored
llvm-svn: 121734
-
- Dec 13, 2010
-
-
Douglas Gregor authored
and TemplateArgument with an operation that determines whether there are any unexpanded parameter packs within that construct. Use this information to diagnose the appearance of the names of parameter packs that have not been expanded (C++ [temp.variadic]p5). Since this property is checked often (every declaration, ever expression statement, etc.), we extend Type and Expr with a bit storing the result of this computation, rather than walking the AST each time to determine whether any unexpanded parameter packs occur. This commit is deficient in several ways, which will be remedied with future commits: - Expr has a bit to store the presence of an unexpanded parameter pack, but it is never set. - The error messages don't point out where the unexpanded parameter packs were named in the type/expression, but they should. - We don't check for unexpanded parameter packs in all of the places where we should. - Testing is sparse, pending the resolution of the above three issues. llvm-svn: 121724
-
Abramo Bagnara authored
llvm-svn: 121720
-
Chandler Carruth authored
llvm-svn: 121694
-
Chandler Carruth authored
would return true if the initializer pointer union had *any* non-null pointer in it, even if the pointer wasn't one that would actually be returned via getInit(). This makes it more accurately model the logic of 'getInit() != NULL'. This still isn't completely satisfying. From a principled stance, I suspect we should make hasInit() and getInit() *always* return false and NULL (resp.) for ParmVarDecl. We shouldn't at the API level treat initializers and default arguments as the same thing. llvm-svn: 121692
-