Douglas Gregor
67a587c9e6
Alternative workaround for MSVC compilation failure, from Dimitry Andric
...
llvm-svn: 103409
2010-05-10 17:28:19 +00:00
Devang Patel
b319adec49
If variable location is invalid then use current location.
...
This fixes radar 7959934.
llvm-svn: 103408
2010-05-10 17:24:58 +00:00
Bob Wilson
01fcdaa7f5
Fix PR7096. When a block containing multiple defs is tail duplicated, the
...
SSAUpdater for the value from the first def may see uses of undefined values,
because the later defs will not have been updated yet.
llvm-svn: 103407
2010-05-10 17:14:26 +00:00
Daniel Dunbar
c8a7bdbcc4
Fix refacto in r103387, noticed by Christopher Jefferson.
...
llvm-svn: 103406
2010-05-10 15:59:37 +00:00
Anders Carlsson
5f1a1704a2
Add an UpdateVBases parameter to UpdateEmptyClassOffsets. Not used just yet.
...
llvm-svn: 103403
2010-05-10 15:28:59 +00:00
Anders Carlsson
d626cb74d1
More work on handling empty classes.
...
llvm-svn: 103402
2010-05-10 15:26:14 +00:00
Kalle Raiskila
92ea401d8f
Fix encoding of 'sf' and 'sfh' instructions.
...
llvm-svn: 103399
2010-05-10 08:13:49 +00:00
Kalle Raiskila
6be5829925
Add command line option --gcc to bugpoint.
...
Remove sending duplicate of the --gcc-tool-args parameters to gcc.
llvm-svn: 103397
2010-05-10 07:38:37 +00:00
Duncan Sands
e4d6670f6b
Add an assertion to catch attempts to access off the end of the array.
...
Based on a patch by Javier Martinez.
llvm-svn: 103391
2010-05-10 04:54:28 +00:00
Chris Lattner
abfb58d1d2
pch'ify CXXNewExpr and CXXZeroInitValueExpr
...
llvm-svn: 103390
2010-05-10 01:22:27 +00:00
Chandler Carruth
1d59e54dcf
Doxygen-ify a comment and add an example of when this AST node is required.
...
llvm-svn: 103389
2010-05-10 00:56:18 +00:00
Chris Lattner
bc7d55d1f0
fix refactor-o
...
llvm-svn: 103388
2010-05-10 00:45:12 +00:00
Chris Lattner
cba86142a4
pchify CXXTemporary, CXXBindTemporaryExpr, and
...
CXXExprWithTemporaries.
llvm-svn: 103387
2010-05-10 00:25:06 +00:00
Chris Lattner
89eaeba0f7
remove a dead file.
...
llvm-svn: 103383
2010-05-09 17:34:13 +00:00
Chandler Carruth
dab98ccb4b
Fix typo.
...
llvm-svn: 103378
2010-05-09 12:16:11 +00:00
Nathan Jeffords
b19c598843
updated handling dllexport in X86AsmPrinter
...
changed dllexport code to use EmitBytes instead of EmitRawText, and changed the export option to use /EXPORT: instead of -export: on the windows platform
llvm-svn: 103377
2010-05-09 08:40:06 +00:00
Chris Lattner
e2437f4538
pch'ify default argument definitions and uses.
...
llvm-svn: 103376
2010-05-09 06:40:08 +00:00
Chris Lattner
9826733963
pch'ify 'this' and 'throw'
...
llvm-svn: 103375
2010-05-09 06:15:05 +00:00
Chris Lattner
13a5ecc6ff
pch'ify typeid.
...
llvm-svn: 103374
2010-05-09 06:03:39 +00:00
Nathan Jeffords
2760216c89
made COFF target dllexport logic apply to all subtargets
...
llvm-svn: 103373
2010-05-09 05:52:28 +00:00
Nathan Jeffords
da7d01404d
test commit, added a comment to MCSectionCOFF::PrintSwitchToSection function
...
llvm-svn: 103372
2010-05-09 05:49:00 +00:00
Chris Lattner
b7e7f722a2
pchify CXXMemberCallExpr correctly. Before it would serialize
...
and deserialize as a CallExpr which is close, but ends up
deserializing with the wrong stmt class.
llvm-svn: 103371
2010-05-09 05:36:05 +00:00
Anders Carlsson
82828a31f6
Cleanup.
...
llvm-svn: 103370
2010-05-09 05:03:38 +00:00
Douglas Gregor
62c281a873
Be more careful about picking a template parameter when we fail to substitute explicit template arguments into a function template
...
llvm-svn: 103369
2010-05-09 01:26:06 +00:00
David Chisnall
e0b5b3a1c5
Tweaked selector mangling again (GNU runtime).
...
llvm-svn: 103368
2010-05-09 01:01:43 +00:00
Douglas Gregor
6d319c62c5
Fix a silly bootstrap-breaking thinko, where we were trying to convert
...
non-existent condition expressions to boolean values during template
instantiation.
llvm-svn: 103364
2010-05-08 23:34:38 +00:00
Anders Carlsson
15837f8f63
Actually compute the empty subobject sizes. No functionality change yet.
...
llvm-svn: 103363
2010-05-08 23:06:26 +00:00
Douglas Gregor
14f232ea20
Improve our handling of the -Wunused-variable warning in templates. In
...
particular, don't complain about unused variables that have dependent
type until instantiation time, so that we can look at the type of the
variable. Moreover, only complain about unused variables that have
neither a user-declared constructor nor a non-trivial destructor.
llvm-svn: 103362
2010-05-08 23:05:03 +00:00
Douglas Gregor
0bbe94d6df
Don't complain about an __builtin_va_arg expression's result being
...
unused, since the operation has side effects.
llvm-svn: 103360
2010-05-08 22:41:50 +00:00
Anders Carlsson
2357bfd9d0
Add a SizeOfLargestEmptySubobject member to ASTRecordLayout. For C++ classes this will hold the largest empty subobject or 0 if the class doesn't have any empty subobjects.
...
llvm-svn: 103359
2010-05-08 22:35:05 +00:00
Douglas Gregor
ffa56e90f8
Attempted workaround for MSVC compile error
...
llvm-svn: 103358
2010-05-08 22:24:24 +00:00
Douglas Gregor
ff73a9e380
When instantiating statements that involve conditions (if, while, do,
...
for, and switch), be careful to construct the full expressions as soon
as we perform template instantation, so we don't either forget to call
temporary destructors or destroy temporaries at the wrong time. This
is the template-instantiation analogue to r103187, during which I
hadn't realized that the issue would affect the handling of these
constructs differently inside and outside of templates.
Fixes a regression in Boost.Function.
llvm-svn: 103357
2010-05-08 22:20:28 +00:00
Chris Lattner
84d4618659
make simplifycfg insert an llvm.trap before the 'unreachable' it introduces
...
when it detects undefined behavior. llvm.trap generally codegens into some
thing really small (e.g. a 2 byte ud2 instruction on x86) and debugging this
sort of thing is "nontrivial". For example, we now compile:
void foo() { *(int*)0 = 42; }
into:
_foo:
pushl %ebp
movl %esp, %ebp
ud2
Some may even claim that this is a security hole, though that seems dubious
to me. This addresses rdar://7958343 - Optimizing away null dereference
potentially allows arbitrary code execution
llvm-svn: 103356
2010-05-08 22:15:59 +00:00
David Chisnall
2ec6cff9d0
Fixed linkage problem from last commit (GNU runtime).
...
llvm-svn: 103355
2010-05-08 21:55:04 +00:00
Chris Lattner
02b0df5338
Teach instcombine to transform a bitcast/(zext|trunc)/bitcast sequence
...
with a vector input and output into a shuffle vector. This sort of
sequence happens when the input code stores with one type and reloads
with another type and then SROA promotes to i96 integers, which make
everyone sad.
This fixes rdar://7896024
llvm-svn: 103354
2010-05-08 21:50:26 +00:00
David Chisnall
0a24fd3744
Tweaked selector generation (GNU runtime). Removed the use of GlobalAliases in the generated bitcode.
...
llvm-svn: 103353
2010-05-08 20:58:05 +00:00
Douglas Gregor
b02d6b3b94
Don't destroy the data associated with an overload resolution candidate; it's ASTContext-allocated now
...
llvm-svn: 103350
2010-05-08 20:20:05 +00:00
Douglas Gregor
90cf2c98bb
Record template argument deduction failures for member function
...
templates and conversion function templates.
llvm-svn: 103349
2010-05-08 20:18:54 +00:00
Douglas Gregor
d09efd43d3
When printing an overload candidate that failed due to SFINAE, print a
...
specific message that includes the template arguments, e.g.,
test/SemaTemplate/overload-candidates.cpp:27:20: note: candidate template
ignored: substitution failure [with T = int *]
typename T::type get_type(const T&); // expected-note{{candidate ...
^
llvm-svn: 103348
2010-05-08 20:07:26 +00:00
Chris Lattner
5a62d6e578
Fix PR7052, patch by Jakub Staszak!
...
llvm-svn: 103347
2010-05-08 20:01:44 +00:00
Chris Lattner
72afa956db
break coff symbol definition stuff out into proper MCStreamer callbacks,
...
patch by Nathan Jeffords!
llvm-svn: 103346
2010-05-08 19:54:22 +00:00
Douglas Gregor
1d72edd7c5
Improve overload-candidate diagnostic for a function template that
...
failed because the explicitly-specified template arguments did not
match its template parameters, e.g.,
test/SemaTemplate/overload-candidates.cpp:18:8: note: candidate
template
ignored: invalid explicitly-specified argument for template
parameter 'I'
void get(const T&);
^
test/SemaTemplate/overload-candidates.cpp:20:8: note: candidate
template
ignored: invalid explicitly-specified argument for 1st template
parameter
void get(const T&);
^
llvm-svn: 103344
2010-05-08 19:15:54 +00:00
Douglas Gregor
564767cf39
A leak is better than a double-free while I figure out how to address
...
this issue.
llvm-svn: 103343
2010-05-08 18:32:25 +00:00
Douglas Gregor
461761d68f
Minor cleanup, and ban copying of OverloadCandidateSets. No
...
functionality change.
llvm-svn: 103342
2010-05-08 18:20:53 +00:00
Douglas Gregor
02eb4835ce
When template argument deduction fails because the call had too
...
many/too few arguments, use the same diagnostic we use for arity
mismatches in non-templates (but note that it's a function template).
llvm-svn: 103341
2010-05-08 18:13:28 +00:00
Douglas Gregor
3626a5cac2
When printing a non-viable overload candidate that failed due to
...
conflicting deduced template argument values, give a more specific
reason along with those values, e.g.,
test/SemaTemplate/overload-candidates.cpp:4:10: note: candidate template
ignored: deduced conflicting types for parameter 'T' ('int' vs. 'long')
const T& min(const T&, const T&);
^
llvm-svn: 103339
2010-05-08 17:41:32 +00:00
Douglas Gregor
14653638de
Fix test for Release-Asserts build
...
llvm-svn: 103337
2010-05-08 16:04:01 +00:00
Bill Wendling
cd476b6760
Readd testcase.
...
llvm-svn: 103335
2010-05-08 04:47:54 +00:00
Daniel Dunbar
401d4c9341
Run interrupt routines as part of report_fatal_error, since we are failing
...
ungracefully.
llvm-svn: 103334
2010-05-08 02:10:36 +00:00
Daniel Dunbar
68272566c6
Add llvm::sys::RunInterruptHandlers(), which runs the registered SIGINT cleanup
...
stuff.
llvm-svn: 103333
2010-05-08 02:10:34 +00:00