Eli Friedman
274ab904d0
Avoid assert-crash in a case where the expression passed to EmitConstantExpr
...
legitimately has side-effects (and needs to be generated as a non-constant).
llvm-svn: 88767
2009-11-14 08:51:33 +00:00
Eli Friedman
b210fc598f
Make __func__ and friends work correctly within the initializer for a static
...
local variable.
llvm-svn: 88766
2009-11-14 08:37:13 +00:00
Daniel Dunbar
1b39a2edff
Shuffle VerifyDiagnosticsClient API to be less fragile.
...
llvm-svn: 88765
2009-11-14 07:53:24 +00:00
Daniel Dunbar
409e890f8d
Add CompilerInstance::InitializeSourceManager.
...
llvm-svn: 88764
2009-11-14 07:53:04 +00:00
Eli Friedman
a9ea959d04
PR5462: Don't run off the edge of the argument array for vararg handling
...
when there are more parameters in the prototype than arguments to the call.
llvm-svn: 88759
2009-11-14 04:43:10 +00:00
Daniel Dunbar
6c39d457fa
Update FixIt tests to make it more obvious they use a separate mode.
...
llvm-svn: 88758
2009-11-14 04:39:42 +00:00
Daniel Dunbar
10563ea92e
Turn -fixit it back into a mode, but make -fixit-at imply that mode this time
...
(instead of running it with arbitrary consumers).
- Also, turn any -fixit-at lookup failure into an error.
llvm-svn: 88757
2009-11-14 04:39:29 +00:00
Eli Friedman
b774685c08
Fix a couple of tests.
...
llvm-svn: 88756
2009-11-14 04:23:25 +00:00
Eli Friedman
b572c92674
PR5483: Generate missing form of destructor when it is virtual. (Someone
...
more familiar with this stuff should double-check that there isn't some more
general rule; this is purely from inspecting g++ output.)
llvm-svn: 88755
2009-11-14 04:19:37 +00:00
Eli Friedman
c9827d1ad3
Fix for PR5489: don't skip the complete type requrirement for variable
...
definitions just because the type happens to be an array type.
llvm-svn: 88752
2009-11-14 03:40:14 +00:00
Douglas Gregor
bf3f322034
When type-checking a static cast (or the static_cast part of a C-style
...
cast) that is converting to a class type, enumerate its constructors
as in any other direct initialization. This ensures that we get the
proper conversion sequence.
llvm-svn: 88751
2009-11-14 03:27:21 +00:00
Daniel Dunbar
50ec0da0e1
Switch -verify implementation to use VerifyDiagnosticClient.
...
- Not tested, but -verify with multiple inputs should work now.
llvm-svn: 88750
2009-11-14 03:24:39 +00:00
Daniel Dunbar
9d5118a69c
Fix broken tests, exposed by improved -verify.
...
llvm-svn: 88749
2009-11-14 03:24:04 +00:00
Daniel Dunbar
348185548e
Add VerifyDiagnosticsClient, to replace old -verify.
...
- This reimplements -verify as just another DiagnosticClient, which buffers the diagnostics and checks them when the source file is complete. There are some hacks to make this work, but they are all internal, and this exposes a better external interface.
- This also tweaks a few things:
o Errors are now just regular diagnostics.
o Frontend diagnostics are now caught (for example, errors in command line arguments), although there isn't yet a way to specify that they are expected. That would be nice though.
- Not yet used.
llvm-svn: 88748
2009-11-14 03:23:19 +00:00
Anders Carlsson
654e5c7cf8
Diagnose ambiguity of operator delete and operator delete[]. Sebastian, please review.
...
llvm-svn: 88747
2009-11-14 03:17:38 +00:00
Daniel Dunbar
e598a56d30
Pass Preprocessor through DiagnosticClient::BeginSourceFile.
...
llvm-svn: 88744
2009-11-14 02:48:04 +00:00
Daniel Dunbar
56d9c293db
Add ASTConsumer to CompilerInstance.
...
llvm-svn: 88743
2009-11-14 02:47:17 +00:00
Fariborz Jahanian
da2efb091d
Generate the old API when sending message to super
...
in a category implementation (objc 32bit api related).
llvm-svn: 88741
2009-11-14 02:18:31 +00:00
Anders Carlsson
52ce3bbf57
Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484.
...
llvm-svn: 88735
2009-11-14 01:51:50 +00:00
Douglas Gregor
ffe14e3712
If we attempt to add a constructor template specialization that looks
...
like a copy constructor to the overload set, just ignore it. This
ensures that we don't try to use such a constructor as a copy
constructor *without* triggering diagnostics at the point of
declaration.
Note that we *do* diagnose such copy constructors when explicitly
written by the user (e.g., as an explicit specialization).
llvm-svn: 88733
2009-11-14 01:20:54 +00:00
Daniel Dunbar
bf410c6fc2
Add static version of Preprocessor::getSpelling.
...
llvm-svn: 88732
2009-11-14 01:20:48 +00:00
Daniel Dunbar
e01dc86d2a
Move CompilerInstance::set* methods out-of-line.
...
llvm-svn: 88731
2009-11-14 01:20:40 +00:00
Ted Kremenek
1a0dd2e30b
Move definition of GRExprEngine::ProcessEndPath() out-of-line.
...
llvm-svn: 88729
2009-11-14 01:05:20 +00:00
Mike Stump
2ec5dd7160
Mangling support for typeinfo names.
...
llvm-svn: 88726
2009-11-14 00:14:13 +00:00
Douglas Gregor
ff7028a55e
Revert r88718, which does NOT solve the constructor-template-as-copy-constructor issue. Big thanks to John for finding this
...
llvm-svn: 88724
2009-11-13 23:59:09 +00:00
Mike Stump
c5a332cefb
Handle descructor printing better.
...
llvm-svn: 88723
2009-11-13 23:45:53 +00:00
Douglas Gregor
2bb756a3be
Template argument deduction of a non-type template parameter from a
...
template argument.
llvm-svn: 88722
2009-11-13 23:45:44 +00:00
Douglas Gregor
5f235a21eb
A constructor template cannot be instantiated to a copy
...
constructor. Make sure that such declarations can never be formed.
llvm-svn: 88718
2009-11-13 23:14:53 +00:00
Mike Stump
559387fe8b
Also track address points for primaries bases.
...
llvm-svn: 88717
2009-11-13 23:13:20 +00:00
Fariborz Jahanian
ebea005812
Code gen. For virtual destructor call on array objects
...
(still part of pr5472).
llvm-svn: 88712
2009-11-13 22:29:45 +00:00
Mike Stump
2fb78c0250
More VTT and constructor vtable testcases from recent work.
...
llvm-svn: 88710
2009-11-13 22:12:05 +00:00
Mike Stump
3693652378
Add more testcase for construction vtables and VTTs.
...
llvm-svn: 88702
2009-11-13 21:55:26 +00:00
Mike Stump
464de23b72
Add some more VTT testcases.
...
llvm-svn: 88699
2009-11-13 21:40:38 +00:00
Eli Friedman
6f04b1e605
Obvious fix for PR5474.
...
llvm-svn: 88696
2009-11-13 21:23:46 +00:00
Fariborz Jahanian
f75c1f7a73
Fixes a code gen. bug for array delete operator call
...
int 32bit abi (pr5472 related).
-This line, and those below, will be ignored--
M lib/CodeGen/CGCXXExpr.cpp
llvm-svn: 88695
2009-11-13 21:20:14 +00:00
Anders Carlsson
bdd124036d
Clear temporaries in more places.
...
llvm-svn: 88687
2009-11-13 20:11:49 +00:00
Ted Kremenek
9430bf20ff
Remove test case's dependency on header file.
...
llvm-svn: 88685
2009-11-13 20:03:22 +00:00
Ted Kremenek
e5e977013c
Add two new test cases for the Malloc/Free checker. Both have to do with
...
storing malloc'ed memory to global storage.
llvm-svn: 88684
2009-11-13 20:00:28 +00:00
Ted Kremenek
c2675568a1
Add test case that shows a leak we don't catch.
...
llvm-svn: 88683
2009-11-13 19:53:32 +00:00
Mike Stump
e56213fc1e
Add a testcase for the recent VTT work.
...
llvm-svn: 88681
2009-11-13 19:36:46 +00:00
Fariborz Jahanian
6814eaa2cc
Code gen for arrady delete operator. Fixes pr5472.
...
llvm-svn: 88680
2009-11-13 19:27:47 +00:00
Anders Carlsson
1fe64cb059
Fix bug Doug noticed.
...
llvm-svn: 88679
2009-11-13 19:21:49 +00:00
Daniel Dunbar
dd6e6918e6
Add test for expr.delete p5, with a FIXME.
...
llvm-svn: 88678
2009-11-13 19:13:56 +00:00
Devang Patel
b40f295037
Do not store DIDescriptor directly into a container. Store MDNode directly, through TrackingVH.
...
llvm-svn: 88677
2009-11-13 19:10:24 +00:00
Mike Stump
88fc7d4202
This falls into the category of stupid pet tricks. I hate to do this,
...
but this is necessary to continue work on virtual vtables. We don't
want to penalize virtual table building testcases, just because
complex virtual conversions don't yet work.
llvm-svn: 88676
2009-11-13 18:53:35 +00:00
Ken Dyck
8d6d4b84e2
add missing slashes to separator line; also testing commit access
...
llvm-svn: 88675
2009-11-13 18:50:18 +00:00
Ted Kremenek
9f2ee2bb26
Use 'eq' operator, and enable regular experimental checks when --experimental-checks is passed to scan-build.
...
llvm-svn: 88673
2009-11-13 18:49:48 +00:00
Ted Kremenek
4ef13f8ac9
Add clang-cc option "--analyzer-experimental-internal-checks". This
...
option enables new "internal" checks that will eventually be turned on
by default but still require broader testing.
llvm-svn: 88671
2009-11-13 18:46:29 +00:00
Douglas Gregor
379d84b7ed
When performing copy initialization (= "implicit conversion", here) to
...
a class type from itself or a derived class thereof, enumerate
constructors and permit user-defined conversions to the arguments of
those constructors. This fixes the wacky implicit conversion sequence
used in std::auto_ptr's lame emulation of move semantics.
llvm-svn: 88670
2009-11-13 18:44:21 +00:00
Douglas Gregor
07eae02fc7
When transforming an expression statement (e.g., for template
...
instantiation), be sure to finish the expression statement by
providing a FullExprArg, making sure that temporaries get
destroyed. Fixes an obscure failure when parsing
llvm/LinkAllPasses.h.
llvm-svn: 88668
2009-11-13 18:34:26 +00:00