- Apr 27, 2010
-
-
Evan Cheng authored
llvm-svn: 102453
-
Douglas Gregor authored
we were relying on checking for abstract class types when an array type was actually used to declare a variable, parameter, etc. However, we need to check when the construct the array for, e.g., SFINAE purposes (see DR337). Fixes problems with Boost's is_abstract type trait. llvm-svn: 102452
-
Douglas Gregor authored
UnresolvedLookupExpr and UnresolvedMemberExpr by substituting the naming class we computed when building the expression in the template... ... which we didn't always do correctly. Teach UnresolvedMemberExpr::getNamingClass() all about the new representation of injected-class-names in templates, so that it can return a naming class that is the current instantiation. Also, when decomposing a template-id into its template name and its arguments, be sure to set the naming class on the LookupResult structure. Fixes PR6947 the right way. llvm-svn: 102448
-
Benjamin Kramer authored
llvm-svn: 102447
-
Fariborz Jahanian authored
from AST, consider ivar array of objects (per Doug's comment). llvm-svn: 102446
-
Benjamin Kramer authored
llvm-svn: 102445
-
Douglas Gregor authored
tag of the same name, compare the lookup contexts rather than the actual contexts. Fixes PR6923. llvm-svn: 102437
-
Douglas Gregor authored
variables. Fixes PR6948. llvm-svn: 102436
-
Douglas Gregor authored
mysterious Elrood on IRC. llvm-svn: 102435
-
Douglas Gregor authored
expressions, be sure to set the naming class of the LookupResult structure. Fixes PR6947. llvm-svn: 102434
-
Daniel Dunbar authored
llvm-svn: 102432
-
Daniel Dunbar authored
llvm-svn: 102431
-
David Chisnall authored
This works around stack corruption / crashes resulting from PR6944, and also works around people who expect 'what works on my machine' to work everywhere (GCC crashes in a number of cases on SPARC that should now work correctly with clang). llvm-svn: 102430
-
Daniel Dunbar authored
llvm-svn: 102429
-
Chris Lattner authored
should fix some "g++.dg-struct-layout-1" failures, rdar://7886017 llvm-svn: 102421
-
Enea Zaffanella authored
llvm-svn: 102420
-
Chris Lattner authored
llvm-svn: 102418
-
Chris Lattner authored
llvm-svn: 102417
-
Dale Johannesen authored
of the dbg testsuite regressions. I don't think this is really the right fix; this change exposed an existing problem upstream somewhere. llvm-svn: 102410
-
John McCall authored
with a qualifier referencing a different type. llvm-svn: 102409
-
John McCall authored
of a class template or class template partial specialization. That is to say, in template <class T> class A { ... }; or template <class T> class B<const T*> { ... }; make 'A<T>' and 'B<const T*>' sugar for the corresponding InjectedClassNameType when written inside the appropriate context. This allows us to track the current instantiation appropriately even inside AST routines. It also allows us to compute a DeclContext for a type much more efficiently, at some extra cost every time we write a template specialization (which can be optimized, but I've left it simple in this patch). llvm-svn: 102407
-
Bill Wendling authored
*not* declarations to *not* be placed in the "preserve" list. <rdar://problem/7870735> llvm-svn: 102405
-
Dale Johannesen authored
in ISel fixed it. llvm-svn: 102404
-
Fariborz Jahanian authored
constructors or destructors, not used yet. llvm-svn: 102403
-
Chris Lattner authored
add a version of createLowerInvokePass that allows the client to specify whether it wants "expensive" or "cheap" lowering. Patch by Alex Mac! llvm-svn: 102402
-
Chris Lattner authored
llvm-svn: 102401
-
Chris Lattner authored
otherwise labels get incorrectly merged. We handled this by emitting a ".byte 0", but this isn't correct on thumb/arm targets where the text segment needs to be a multiple of 2/4 bytes. Handle this by emitting a noop. This is more gross than it should be because arm/ppc are not fully mc'ized yet. This fixes rdar://7908505 llvm-svn: 102400
-
Dan Gohman authored
traps flowing through memory references, add some text to better cover phi nodes and externally-visible side effects, add an example of instructions being control-dependent on a trap value, and reword some of the existing trap rules. llvm-svn: 102399
-
Devang Patel authored
llvm-svn: 102398
-
Bob Wilson authored
Radar 7896289 llvm-svn: 102396
-
Bob Wilson authored
to print the operand. llvm-svn: 102395
-
Devang Patel authored
llvm-svn: 102394
-
Douglas Gregor authored
by using TypeSourceInfo, cleaning up the representation somewhat. Teach getTypeOperand() to strip references and cv-qualifiers, providing the semantic view of the type without requiring any extra storage (the unmodified type remains within the TypeSourceInfo). This fixes a bug found by Boost's call_traits test. Finally, clean up semantic analysis, by splitting the ActOnCXXTypeid routine into ActOnCXXTypeId (the parser action) and two BuildCXXTypeId functions, which perform the semantic analysis for typeid(type) and typeid(expression), respectively. We now perform less work at template instantiation time (we don't look for std::type_info again) and can give better diagnostics. llvm-svn: 102393
-
Chris Lattner authored
.S files. "# 123" is passed through as-is, not treated as a line marker in this mode. No testcase, because it would be nasty and isn't worth it. llvm-svn: 102391
-
Fariborz Jahanian authored
llvm-svn: 102390
-
- Apr 26, 2010
-
-
Dan Gohman authored
doesn't dominate the header is needed, don't check whether the increment expression has computable loop evolution. While the operands of an addrec are required to be loop-invariant, they're not required to dominate any part of the loop. This fixes PR6914. llvm-svn: 102389
-
-
Dan Gohman authored
llvm-svn: 102387
-
Douglas Gregor authored
thing. Audit all uses of Type::isStructure(), changing those calls to isStructureOrClassType() as needed (which is alsmost everywhere). Fixes the remaining failure in Boost.Utility/Swap. llvm-svn: 102386
-
Jeffrey Yasskin authored
intrinsics have volatile semantics in addition to the load and store instructions. llvm-svn: 102384
-