Douglas Gregor
9556257252
When we create a temporary of class type that we don't immediately
...
bind, check accessibility of the destructor and mark the declaration
as referenced. Fixes a bunch of Boost.Regex failures.
llvm-svn: 102287
2010-04-24 23:45:46 +00:00
Anders Carlsson
dde8b46e62
Cleanup SynthesizeCXXCopyConstructor.
...
llvm-svn: 102286
2010-04-24 23:11:18 +00:00
Anders Carlsson
84e3b62ac0
Clean up SynthesizeCXXCopyAssignment a little.
...
llvm-svn: 102285
2010-04-24 23:09:21 +00:00
Anders Carlsson
c4ba0cd2ea
RenameGetAddressOfBaseOfCompleteClass to GetAddressOfDirectBaseInCompleteClass to reflect that it only handles direct bases.
...
llvm-svn: 102284
2010-04-24 23:01:49 +00:00
Anders Carlsson
36db0d9c47
Add an explicit UsuallyTinyPtrVector that takes a single element.
...
llvm-svn: 102283
2010-04-24 22:54:32 +00:00
Anders Carlsson
26b6e23d57
More cleanup.
...
llvm-svn: 102282
2010-04-24 22:43:39 +00:00
Anders Carlsson
9523ad4fd3
Simplify EmitClassMemberwiseCopy now that it's only used for fields.
...
llvm-svn: 102281
2010-04-24 22:36:50 +00:00
Nick Lewycky
0a7de38a22
Switch this to new API.
...
llvm-svn: 102280
2010-04-24 22:31:36 +00:00
Anders Carlsson
90235beb55
DefineImplicitCopyConstructor now uses SetBaseOrMemberInitializers to create implicit base initializers. (Member initializers are still handled by CodeGenFunction::SynthesizeCXXCopyConstructor for now).
...
llvm-svn: 102279
2010-04-24 22:25:18 +00:00
Dan Gohman
283a350f4d
PHI nodes also do not necessarily return trap with a trap operand.
...
llvm-svn: 102278
2010-04-24 22:15:58 +00:00
Anders Carlsson
af13c7bea9
When building implicit base initializers, add a derived-to-base cast that points to the exact base specifier.
...
llvm-svn: 102277
2010-04-24 22:02:54 +00:00
Nick Lewycky
9a7459af1d
Fix typo.
...
llvm-svn: 102276
2010-04-24 22:01:40 +00:00
Anders Carlsson
bea9e74e82
Rename GetAddressOfBaseClass to OldGetAddressOfBaseClass.
...
llvm-svn: 102275
2010-04-24 21:51:08 +00:00
Anders Carlsson
795213efde
Get rid of the old GetNonVirtualBaseClassOffset and change all call sites to use the new version.
...
llvm-svn: 102274
2010-04-24 21:27:51 +00:00
Anders Carlsson
8a64c1c94c
Change CodeGenFunction::GetAddressOfDerivedClass to take a BasePath.
...
llvm-svn: 102273
2010-04-24 21:23:59 +00:00
Anders Carlsson
c6eaea70af
Convert more call sites over to the new GetAddressOfBaseClass.
...
llvm-svn: 102272
2010-04-24 21:12:55 +00:00
Douglas Gregor
d5c231e745
When we attempt to create a temporary object of class type, be sure
...
that the type we're copying is complete.
Boost.Regex now builds, although it's failing its regression tests
with our favorite "Sema doesn't consider destructor as used."
assertion.
llvm-svn: 102271
2010-04-24 21:09:25 +00:00
Anders Carlsson
d829a02514
Add a new GetAddressOfBaseClass overload that takes a base path and. Use it for derived-to-base casts.
...
llvm-svn: 102270
2010-04-24 21:06:20 +00:00
Douglas Gregor
c779e99540
When we are performing copy initialization of a class type via its
...
copy constructor, suppress user-defined conversions on the
argument. Otherwise, we can end up in a recursion loop where the
bind the argument of the copy constructor to another copy constructor call,
whose argument is then a copy constructor call...
Found by Boost.Regex which, alas, still isn't building.
llvm-svn: 102269
2010-04-24 20:54:38 +00:00
Daniel Dunbar
cfc12ddb0a
Headers: Hide intptr_t and uintptr_t definitions behind _INTPTR_T and _UINTPTR_T
...
defines, for increased compatibility with Darwin gcc.
- This is a bit of a hack, since platform compatibility issues don't belong
here, but I don't think this hurts anyone either.
llvm-svn: 102264
2010-04-24 20:32:12 +00:00
Benjamin Kramer
20f2d4382f
Fix pasto, add a comment.
...
llvm-svn: 102263
2010-04-24 20:26:20 +00:00
Benjamin Kramer
bbb5deace6
Factor code. No functionality change.
...
llvm-svn: 102262
2010-04-24 20:19:58 +00:00
Anders Carlsson
7d3360f123
Add base paths for CK_BaseToDerived and CK_BaseToDerivedMemberPointer.
...
llvm-svn: 102261
2010-04-24 19:36:51 +00:00
Anders Carlsson
b78fecaf6f
Add base paths to CK_UncheckedDerivedToBase and CK_DerivedToBaseMemberPointer.
...
llvm-svn: 102260
2010-04-24 19:22:20 +00:00
Anders Carlsson
a70cff624e
Actually produce base paths for CastExprs of kind CK_DerivedToBase.
...
llvm-svn: 102259
2010-04-24 19:06:50 +00:00
Anders Carlsson
5d270e8fa6
Add BasePath arguments to all cast expr constructors.
...
llvm-svn: 102258
2010-04-24 18:38:56 +00:00
Daniel Dunbar
df3d1c2d1f
Driver/Darwin: Fix Objective-C non-fragile ABI and dispatch method defaults, which were wrong in numerous places.
...
- <rdar://problem/7903449>
llvm-svn: 102257
2010-04-24 18:37:41 +00:00
Douglas Gregor
53ce178cef
When we take the address of a declaration to bind it to a non-type
...
template parameter, by sure to mark that declaration as
"referenced". The Boost.Iterator library now passes all tests.
llvm-svn: 102256
2010-04-24 18:20:53 +00:00
Daniel Dunbar
fca18c1b41
NeXT: Clean up dispatch method policy selection.
...
- Replace -cc1 level -fobjc-legacy-dispatch with -fobjc-dispatch-method={legacy,non-legacy,mixed}.
- Lift "mixed" vs "non-mixed" policy choice up to driver level, instead of being buried in CGObjCMac.cpp.
- No intended functionality change.
llvm-svn: 102255
2010-04-24 17:56:46 +00:00
Daniel Dunbar
db059592fe
Simplify.
...
llvm-svn: 102254
2010-04-24 17:56:39 +00:00
Anders Carlsson
7afe4245e2
Pass the base specifiers through to CheckDerivedToBaseConversion. No functionality change yet.
...
llvm-svn: 102250
2010-04-24 17:11:09 +00:00
Anders Carlsson
0c509eeac7
CastExpr should not hold a pointer to the base path. More cleanup.
...
llvm-svn: 102249
2010-04-24 16:57:13 +00:00
Douglas Gregor
32f21a63ea
Tweak test case slightly
...
llvm-svn: 102248
2010-04-24 16:40:35 +00:00
Douglas Gregor
ba41d01b59
Be more careful around dependent nested-name-specifiers, complaining
...
when they are not complete (since we could not match them up to
anything) and ensuring that enum parsing can cope with dependent
elaborated-type-specifiers. Fixes PR6915 and PR6649.
llvm-svn: 102247
2010-04-24 16:38:41 +00:00
Anders Carlsson
b34f88205f
isValue is set to false by default.
...
llvm-svn: 102246
2010-04-24 16:36:20 +00:00
Anders Carlsson
7d96cd7799
Rename InheritancePath to BasePath, rename CastExpr::CXXBaseVector to CXXBaseSpecifierArray. More to come.
...
llvm-svn: 102245
2010-04-24 16:34:21 +00:00
Douglas Gregor
bbdf20acd0
Keep track of when DependentNameTypes have no associated keyword
...
(e.g., no typename, enum, class, etc.), e.g., because the context is
one that is known to refer to a type. Patch from Enea Zaffanella!
llvm-svn: 102243
2010-04-24 15:35:55 +00:00
Benjamin Kramer
fb278831aa
Update prototypes.
...
llvm-svn: 102241
2010-04-24 08:26:17 +00:00
Nick Lewycky
20f5e974e4
Use provided llvm-defined variables instead of twisting user-controlled knobs.
...
No visible change.
llvm-svn: 102240
2010-04-24 05:07:24 +00:00
Nick Lewycky
3afcd7cd80
Don't touch CXXFLAGS. If it's set in the environment then sub-makes will see
...
the variable that we set as though it came from the user. Fixes PR6835.
llvm-svn: 102239
2010-04-24 04:56:34 +00:00
Dan Gohman
7905d187e6
Fix a place in inline asm lowering which was creating a TruncInst with a
...
pointer operand. This fixes an abort on
MultiSource/Applications/ClamAV/libclamav_mbox.c.
llvm-svn: 102238
2010-04-24 04:55:02 +00:00
Evan Cheng
a02d0e7d6b
Avoid promoting a i16 node if it would eliminate a (store (op (load))) opportunity.
...
llvm-svn: 102237
2010-04-24 04:44:57 +00:00
Evan Cheng
0abb54d631
When a load operand is promoted to an extload, replace other uses with uses of extload result truncated.
...
llvm-svn: 102236
2010-04-24 04:43:44 +00:00
Dan Gohman
534ba376f6
Generalize LSR's OptimizeMax to handle the new kinds of max expressions
...
that indvars may use, now that indvars is recognizing le and ge loops.
llvm-svn: 102235
2010-04-24 03:13:44 +00:00
Dan Gohman
f33bac3afe
ScalarEvolution support for <= and >= loops.
...
Also, generalize ScalarEvolutions's min and max recognition to handle
some new forms of min and max that this change makes more common.
llvm-svn: 102234
2010-04-24 03:09:42 +00:00
Dan Gohman
36cce7e0dd
Use SimplifyICmpOperands in isKnownPredicate too.
...
llvm-svn: 102233
2010-04-24 01:38:36 +00:00
Dan Gohman
3673aa1a51
Update isImpliedCond to use the new SimplifyICmpOperands utility.
...
llvm-svn: 102232
2010-04-24 01:34:53 +00:00
John McCall
b9467b6c9a
Recommit r102215, this time being more careful to only set the "principal
...
declaration" (i.e. the only which will actually be looked up) to have the
non-member-operator bit.
llvm-svn: 102231
2010-04-24 01:30:58 +00:00
Nick Lewycky
784fad7a41
Teach clang -fixit to modify files in-place, or -fixit=suffix to create new
...
files with the additional suffix in the middle.
llvm-svn: 102230
2010-04-24 01:30:46 +00:00
Dan Gohman
48ff3cf63b
Add a new utility function SimplifyICmpOperands. Much of this code is
...
refactored out of ScalarEvolution::isImpliedCond, which will be updated
to use this new utility routine soon.
llvm-svn: 102229
2010-04-24 01:28:42 +00:00