Duncan Sands
76d6217906
Verify metadata harder. In particular, check that module
...
level metadata does not have any function local operands.
This would have caught the problem found in PR6112.
llvm-svn: 102620
2010-04-29 16:10:30 +00:00
Ted Kremenek
bf2de212c6
Bump Clang version number.
...
llvm-svn: 102614
2010-04-29 15:30:51 +00:00
Duncan Sands
d4886f1fbe
Fix comment typo.
...
llvm-svn: 102612
2010-04-29 12:32:45 +00:00
Evan Cheng
5c864b42b2
Add comment.
...
llvm-svn: 102606
2010-04-29 06:58:53 +00:00
Torok Edwin
63dd86352e
Fix PR6910.
...
Limit alignment in SmallVector 8, otherwise GCC assumes 16 byte alignment.
opetaror new, and malloc only return 8-byte aligned memory on 32-bit Linux,
which cause a crash if code is compiled with -O3 (or -ftree-vectorize) and some
SmallVector code is vectorized.
llvm-svn: 102604
2010-04-29 06:43:12 +00:00
Evan Cheng
923679f929
Re-enable 102565 with fixes.
...
llvm-svn: 102602
2010-04-29 06:33:38 +00:00
Douglas Gregor
9225b02096
When performing partial ordering of class template partial
...
specializations, substitute the deduced template arguments and check
the resulting substitution before concluding that template argument
deduction succeeds. This marvelous little fix makes a bunch of
Boost.Spirit tests start working.
llvm-svn: 102601
2010-04-29 06:31:36 +00:00
Douglas Gregor
684268daab
For template argument deduction from class template partial
...
specializations, separate out the deduction part from the checking and
substitution of the deduced arguments.
llvm-svn: 102600
2010-04-29 06:21:43 +00:00
Nick Lewycky
d16766e091
Fix typo.
...
llvm-svn: 102599
2010-04-29 05:54:29 +00:00
Mon P Wang
75c645c6d7
A not equal for an unordered relation should return true as specified in IEEE-754, e.g.,
...
NAN != NAN ? 1 : 0 should return 1. Also fix the case for complex.
llvm-svn: 102598
2010-04-29 05:53:29 +00:00
Evan Cheng
38dfa5cf20
Load folding tail call should not use ebp / rbp after it's popped. PEI
...
should use esp / rsp to reference frame instead.
llvm-svn: 102596
2010-04-29 05:08:22 +00:00
Douglas Gregor
33dcc2e34d
It turns out that we *can* end up having to display template argument
...
bindings when the template argument is still an expression; it happens
while checking the template arguments of a class template partial
specializations. Fixes PR6964.
llvm-svn: 102595
2010-04-29 04:55:13 +00:00
Mon P Wang
b0a0a26df1
Add support for assemblers that don't support periods in a name
...
llvm-svn: 102594
2010-04-29 04:00:56 +00:00
Evan Cheng
d65a1e782b
Temporarily disable my changes to unbreak the build.
...
llvm-svn: 102590
2010-04-29 03:34:19 +00:00
Ted Kremenek
e506ddc71e
Add '__has_feature' support for weak ObjC classes.
...
llvm-svn: 102588
2010-04-29 02:06:46 +00:00
Ted Kremenek
6459939112
Sort '__has_feature' cases. No functionality change.
...
llvm-svn: 102587
2010-04-29 02:06:42 +00:00
Evan Cheng
5fb45a2b85
Do not generate duplicate dbg_value instructions for function arguments.
...
llvm-svn: 102585
2010-04-29 01:40:30 +00:00
Dan Gohman
d9e7322c9a
Fix missing #include.
...
llvm-svn: 102584
2010-04-29 01:39:13 +00:00
Evan Cheng
70a0145d7c
Avoid emitting a dbg_value machineinstr that's not going to be inserted into entry block.
...
llvm-svn: 102581
2010-04-29 01:23:55 +00:00
John McCall
17b61785a3
Test case for r102578.
...
llvm-svn: 102580
2010-04-29 01:20:45 +00:00
John McCall
e23b871c4b
Access-check during template argument deduction from the context of the
...
template decl itself, not its context. Testcase to follow; fixes selfhost.
llvm-svn: 102578
2010-04-29 01:18:58 +00:00
Evan Cheng
250e917e9d
Frame index can be negative.
...
llvm-svn: 102577
2010-04-29 01:13:30 +00:00
Ted Kremenek
989da5eeff
Fix CFG crasher involving statement expressions reported in PR 6938.
...
llvm-svn: 102576
2010-04-29 01:10:26 +00:00
Evan Cheng
f4336ebb2a
Check Reg against zero.
...
llvm-svn: 102573
2010-04-29 00:59:34 +00:00
John McCall
80e58cd3e9
Properly switch into the declaring scope of a template when performing
...
template argument deduction or (more importantly) the final substitution
required by such deduction. Makes access control magically work in these
cases.
Fixes PR6967.
llvm-svn: 102572
2010-04-29 00:35:03 +00:00
Douglas Gregor
d170206761
Teach __builtin_offsetof to compute the offsets of members of base
...
classes, since we only warn (not error) on offsetof() for non-POD
types. We store the base path within the OffsetOfExpr itself, then
evaluate the offsets within the constant evaluator.
llvm-svn: 102571
2010-04-29 00:18:15 +00:00
Evan Cheng
a5a8f76cea
- Really preserve dbg_value instructions when the register is spilled.
...
- Also, update dbg_value is the value is being re-matted from a frame slot, e.g. fixed slots for arguments.
llvm-svn: 102565
2010-04-28 23:52:26 +00:00
Daniel Dunbar
92d5c1a4bf
build: Add CLANG_NO_RUNTIME build variable, which disables building clang
...
runtime library stuff, even if compiler-rt is available.
llvm-svn: 102560
2010-04-28 23:36:26 +00:00
Daniel Dunbar
12c82080a2
Driver: Add support for -fobjc-abi-version=.
...
- <rdar://problem/7919678>
llvm-svn: 102559
2010-04-28 23:25:24 +00:00
Devang Patel
bb728e17d3
tidy up.
...
llvm-svn: 102558
2010-04-28 23:24:13 +00:00
Kevin Enderby
4822841b82
Fixed the word sized Bit Scan Forward/Reverse instructions, they needed the
...
Operand size override prefix to be part of their records.
llvm-svn: 102556
2010-04-28 23:20:40 +00:00
Evan Cheng
6e822459ed
Replace r102368 with code that's less fragile. This creates DBG_VALUE instructions for function arguments early and insert them after instruction selection is done.
...
llvm-svn: 102554
2010-04-28 23:08:54 +00:00
Alexis Hunt
c46382e4b3
Ensure that cv-qualifiers are correctly removed for post-inc/decrements
...
as well as pre- and post-inc/decrements in C (not that I think it
matters for any C code).
llvm-svn: 102552
2010-04-28 23:02:27 +00:00
Douglas Gregor
ea679ec125
Fix template instantiation for __builtin_offfsetof expressions that refer to members of anonymous structs/unions
...
llvm-svn: 102551
2010-04-28 22:43:14 +00:00
Nate Begeman
a8a9d6a1f0
A bit more neon work, adds work (but the ABI is wrong), types mostly stamped out.
...
llvm-svn: 102549
2010-04-28 22:37:01 +00:00
Douglas Gregor
10982ea3f9
Diagnose __builtin_offsetof expressions that refer to bit-fields
...
llvm-svn: 102548
2010-04-28 22:36:06 +00:00
Chris Lattner
669064a772
fix this to work with objdir != srcdir
...
llvm-svn: 102547
2010-04-28 22:34:35 +00:00
Fariborz Jahanian
499b902510
Support for construct/destruct of ivar array
...
of c++ objects (NeXt runtime).
radar 7900343.
llvm-svn: 102546
2010-04-28 22:30:33 +00:00
Dale Johannesen
2288ef6c33
Fix comment.
...
llvm-svn: 102545
2010-04-28 22:23:46 +00:00
Dale Johannesen
8d6d94f493
Test for llvm-gcc checkin 102543.
...
llvm-svn: 102544
2010-04-28 22:17:33 +00:00
Douglas Gregor
882211c1da
Completely reimplement __builtin_offsetof, based on a patch by Roberto
...
Amadini.
This change introduces a new expression node type, OffsetOfExpr, that
describes __builtin_offsetof. Previously, __builtin_offsetof was
implemented using a unary operator whose subexpression involved
various synthesized array-subscript and member-reference expressions,
which was ugly and made it very hard to instantiate as a
template. OffsetOfExpr represents the AST more faithfully, with proper
type source information and a more compact representation.
OffsetOfExpr also has support for dependent __builtin_offsetof
expressions; it can be value-dependent, but will never be
type-dependent (like sizeof or alignof). This commit introduces
template instantiation for __builtin_offsetof as well.
There are two major caveats to this patch:
1) CodeGen cannot handle the case where __builtin_offsetof is not a
constant expression, so it produces an error. So, to avoid
regressing in C, we retain the old UnaryOperator-based
__builtin_offsetof implementation in C while using the shiny new
OffsetOfExpr implementation in C++. The old implementation can go
away once we have proper CodeGen support for this case, which we
expect won't cause much trouble in C++.
2) __builtin_offsetof doesn't work well with non-POD class types,
particularly when the designated field is found within a base
class. I will address this in a subsequent patch.
Fixes PR5880 and a bunch of assertions when building Boost.Python
tests.
llvm-svn: 102542
2010-04-28 22:16:22 +00:00
Fariborz Jahanian
0dec1e0d56
IRGen for initialization/destruction of
...
ivar class objects (NeXt runtime).
(radar 7900343).
llvm-svn: 102533
2010-04-28 21:28:56 +00:00
Bob Wilson
c892b6dbb0
Add an option to the Apple-style build to control whether libLTO.dylib should
...
be installed. Disable it by default.
llvm-svn: 102531
2010-04-28 21:08:01 +00:00
Jim Grosbach
04cbcca319
Add sizes non-floating point versions for the eh sjlj intrinsic expansions.
...
rdar://7895451
llvm-svn: 102526
2010-04-28 20:33:09 +00:00
Devang Patel
4c18a3ac80
Update tests. Now DBG_VALUE instruction is created only if alloca corresponding to llvm.dbg.declare is missing.
...
llvm-svn: 102524
2010-04-28 20:27:48 +00:00
Chris Lattner
ee3576e8f1
declare targets with (void) instead of () since this is a C header.
...
Patch by Lars R in PR6961.
llvm-svn: 102523
2010-04-28 20:24:45 +00:00
Chris Lattner
450e29cb4c
fix PR6112 - When globalopt (or any other pass) does RAUW(@G, %G),
...
metadata references in non-function-local MDNodes should drop to
null.
llvm-svn: 102519
2010-04-28 20:16:12 +00:00
Evan Cheng
d4d1a51895
Pretty print DBG_VALUE machine instructions.
...
Before:
DBG_VALUE %RSI, 0, !-1; dbg:SimpleRegisterCoalescing.cpp:2707
Now:
DBG_VALUE %RSI, 0, !"this"; dbg:SimpleRegisterCoalescing.cpp:2707
llvm-svn: 102518
2010-04-28 20:03:13 +00:00
Chris Lattner
e82411b47f
add regex support for -verify mode. You can now do things like
...
expected-error-re {{someregex}}
Patch by mike-m!
llvm-svn: 102516
2010-04-28 20:02:30 +00:00
Chris Lattner
08e9e72fa9
Rework global alignment computation again. Now we do round up
...
alignment of globals to the preferred alignment, but only when
there is no section specified on the global (by far the common
case).
llvm-svn: 102515
2010-04-28 19:58:07 +00:00