Fariborz Jahanian
c83726e64e
More of Sema to implement initialization of
...
ivar of c++ object types.
llvm-svn: 102500
2010-04-28 16:11:27 +00:00
Benjamin Kramer
9c05bf46d1
Remove unused function.
...
llvm-svn: 102499
2010-04-28 15:54:45 +00:00
Benjamin Kramer
d76b698ca6
Reduce string trashing in getQualifiedNameAsString.
...
llvm-svn: 102498
2010-04-28 14:33:51 +00:00
David Chisnall
d472c85285
Emit the correct symbol name for the class (GNU runtime).
...
llvm-svn: 102497
2010-04-28 14:29:56 +00:00
Abramo Bagnara
41160fed4c
Written storage class for declarations inside linkage specifications without braces is none.
...
llvm-svn: 102496
2010-04-28 13:11:54 +00:00
Evan Cheng
050df1b8de
Enable i16 to i32 promotion by default.
...
llvm-svn: 102493
2010-04-28 08:30:49 +00:00
Evan Cheng
f100557c9a
Try operation promotion only if regular dag combine and target-specific ones failed to do anything.
...
llvm-svn: 102492
2010-04-28 07:10:39 +00:00
Douglas Gregor
a02bb34155
When the qualifier of a id-expression is non-dependent but not
...
complete, return an error rather than falling back to building a
dependent declaration reference, since we might not be in a dependent
context. Fixes a fiendish crash-on-invalid in Boost.FunctionTypes that
I wasn't able to reduce to anything useful.
llvm-svn: 102491
2010-04-28 07:04:26 +00:00
Douglas Gregor
7988def89f
Improve name mangling for dependent template names (e.g., typename
...
T::template apply<U>), handling a few cases where we previously failed
and performing substitutions on such dependent names. Fixes a crash in
Boost.PropertyTree.
llvm-svn: 102490
2010-04-28 05:58:56 +00:00
Douglas Gregor
1614237822
When instantiating a function template specialization following
...
template argument deduction, use the lexical declaration context as
the owner for friend function templates. Fixes 2 failures in
Boost.Graph.
llvm-svn: 102489
2010-04-28 04:52:24 +00:00
Evan Cheng
d21f564543
Unbreak the build. Only form shld / shrd after legalization.
...
llvm-svn: 102488
2010-04-28 02:25:18 +00:00
Evan Cheng
fe420adde0
Update tests.
...
llvm-svn: 102487
2010-04-28 01:53:13 +00:00
Devang Patel
50c9431203
Emit debug info for byval parameters.
...
llvm-svn: 102486
2010-04-28 01:39:28 +00:00
Evan Cheng
347e3b8f15
Rather than having a ton of patterns for double shift instructions, e.g. SHLD16rrCL, just perform custom dag combine to form x86 specific dag so they match to the same pattern. This also makes sure later dag combine do not cause isel to miss them (e.g. promoting i16 to i32).
...
llvm-svn: 102485
2010-04-28 01:18:01 +00:00
Chris Lattner
a3facc5cb5
further simplify EmitAlignment by eliminating the
...
ForcedAlignBits argument, tweaking the single client of it.
llvm-svn: 102484
2010-04-28 01:08:40 +00:00
Chris Lattner
72bdee4c10
remove a dead argument to EmitAlignment.
...
llvm-svn: 102483
2010-04-28 01:06:02 +00:00
Chris Lattner
9e06e53fc6
remove some default arguments to EmitAlignment.
...
llvm-svn: 102482
2010-04-28 01:05:45 +00:00
Devang Patel
173b2b9d05
Refactor.
...
llvm-svn: 102481
2010-04-28 01:03:09 +00:00
Dan Gohman
2f1ae06c45
Rewrite the section on trap values to contain a generic description
...
of dependence and define trap values in terms of dependence, instead
of trying to cover the concept with a flurry of ad-hoc rules.
The dependence model isn't complete yet, but it's already much more
rigorous than the description it replaces.
llvm-svn: 102479
2010-04-28 00:49:41 +00:00
Dan Gohman
61110aed26
Fix spelling errors.
...
llvm-svn: 102478
2010-04-28 00:36:01 +00:00
Stuart Hastings
c0458f1a40
Tweak x86 INC/DEC generation to look for CopyToReg or SETCC. Radar 7866163.
...
llvm-svn: 102477
2010-04-28 00:35:10 +00:00
Chris Lattner
4bd85e47bf
further clarify alignment of globals, fix instcombine
...
to not increase the alignment of globals with an assigned
alignment and section.
llvm-svn: 102476
2010-04-28 00:31:12 +00:00
Chris Lattner
78e00bcb76
improve the global variable alignment description.
...
it is not generally valid for targets to overalign
them when an alignment is specified.
llvm-svn: 102474
2010-04-28 00:13:42 +00:00
John McCall
d06fb865eb
Properly pass the address of a lazily-generated function declaration with
...
incomplete type. Fixes PR6911.
llvm-svn: 102473
2010-04-28 00:00:30 +00:00
Devang Patel
12f6855f85
Use MachineOperand::is* predicates.
...
llvm-svn: 102472
2010-04-27 22:24:37 +00:00
Devang Patel
cfc76fdaf1
Use isReg(), isImm() and isFPImm().
...
llvm-svn: 102470
2010-04-27 22:04:41 +00:00
Devang Patel
1f34c2727d
Check operand type first.
...
llvm-svn: 102468
2010-04-27 21:49:04 +00:00
Evan Cheng
9e3a4ef089
Fix obvious typos.
...
llvm-svn: 102467
2010-04-27 21:46:03 +00:00
Douglas Gregor
1524333004
It's okay to refer to non-type template parameters anywhere they are
...
visible. Fixes the remaining two failures in Boost.ScopeExit.
llvm-svn: 102466
2010-04-27 21:10:04 +00:00
Abramo Bagnara
3bca8e0f2f
Removed spaces at end of line. (Test commit.)
...
llvm-svn: 102465
2010-04-27 21:08:25 +00:00
Eli Friedman
7955e52f5c
Fix for PR6953: per gcc, regparm and noreturn affect the compatibility of
...
function types.
This could potentially have unexpected side-effects, so look here if there are
new regressions.
llvm-svn: 102464
2010-04-27 21:07:06 +00:00
Devang Patel
1a0bbe25e3
Ignore DBG_VALUE instructions that points to undef values.
...
llvm-svn: 102463
2010-04-27 20:54:45 +00:00
Douglas Gregor
199db36b79
When explicitly building a temporary object (CXXTemporaryObjectExpr),
...
keep track of whether we need to zero-initialize storage prior to
calling its constructor. Previously, we were only tracking this when
implicitly constructing the object (a CXXConstructExpr).
Fixes Boost's value-initialization tests, which means that the
Boost.Config library now passes all of its tests.
llvm-svn: 102461
2010-04-27 20:36:09 +00:00
David Chisnall
e6d0073fa9
Fixed message send to void (broken by my last commit - GNU runtime).
...
llvm-svn: 102459
2010-04-27 20:33:30 +00:00
Evan Cheng
3b928af28f
SRA promotion is also not free.
...
llvm-svn: 102456
2010-04-27 19:48:31 +00:00
Evan Cheng
e813690b7a
- When legal, promote a load to zextload rather than ext load.
...
- Catch more further dag combine opportunities as result of operand promotion, e.g. (i32 anyext (i16 trunc (i32 x))) -> (i32 x)
llvm-svn: 102455
2010-04-27 19:48:13 +00:00
Devang Patel
6c74a872a8
Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges.
...
This patch fixes bug (PR6894) introduced by previous version of this patch.
llvm-svn: 102454
2010-04-27 19:46:33 +00:00
Evan Cheng
eb828b6391
Do not count kill, implicit_def instructions as printed instructions.
...
llvm-svn: 102453
2010-04-27 19:38:45 +00:00
Douglas Gregor
7d8072e038
Diagnose the use of abstract types as array element types. Previously,
...
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
2010-04-27 19:38:14 +00:00
Douglas Gregor
9262f4775d
During template instantiation, set the naming class of
...
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
2010-04-27 18:19:34 +00:00
Benjamin Kramer
0a3fe0456f
More simplifications.
...
llvm-svn: 102447
2010-04-27 17:47:25 +00:00
Fariborz Jahanian
38b77a9d8e
Move CollectIvarsToConstructOrDestruct to Sema
...
from AST, consider ivar array of objects
(per Doug's comment).
llvm-svn: 102446
2010-04-27 17:18:58 +00:00
Benjamin Kramer
2e3197e60b
Simplify some code. No change in functionality.
...
llvm-svn: 102445
2010-04-27 17:12:11 +00:00
Douglas Gregor
4423926e66
When checking the redeclaration context of a typedef that refers to a
...
tag of the same name, compare the lookup contexts rather than the
actual contexts. Fixes PR6923.
llvm-svn: 102437
2010-04-27 16:26:47 +00:00
Douglas Gregor
19defcd6f5
Don't look into incomplete types when trying to warn about unused
...
variables. Fixes PR6948.
llvm-svn: 102436
2010-04-27 16:20:13 +00:00
Douglas Gregor
a9f7c3263e
CMake: Fix DESTDIR-related installation problem on Windows, from the
...
mysterious Elrood on IRC.
llvm-svn: 102435
2010-04-27 16:14:06 +00:00
Douglas Gregor
da7be08a0c
When instantiating UnresolvedLookupExpr and UnresolvedMemberExpr
...
expressions, be sure to set the naming class of the LookupResult
structure. Fixes PR6947.
llvm-svn: 102434
2010-04-27 16:10:10 +00:00
Daniel Dunbar
2cb4e7a872
Simplify.
...
llvm-svn: 102432
2010-04-27 15:35:03 +00:00
Daniel Dunbar
34d7a99062
Add Driver support for -fno-constant-cfstrings.
...
llvm-svn: 102431
2010-04-27 15:34:57 +00:00
David Chisnall
75afda6c33
Ensure return from a message to nil is always 0 (GNU runtime).
...
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
2010-04-27 15:08:48 +00:00