]>
granicus.if.org Git - clang/log
Eli Friedman [Sat, 14 Nov 2009 04:43:10 +0000 (04:43 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88759
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 14 Nov 2009 04:39:42 +0000 (04:39 +0000)]
Update FixIt tests to make it more obvious they use a separate mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88758
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 14 Nov 2009 04:39:29 +0000 (04:39 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88757
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 14 Nov 2009 04:23:25 +0000 (04:23 +0000)]
Fix a couple of tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88756
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 14 Nov 2009 04:19:37 +0000 (04:19 +0000)]
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.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88755
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 14 Nov 2009 03:40:14 +0000 (03:40 +0000)]
Fix for PR5489: don't skip the complete type requrirement for variable
definitions just because the type happens to be an array type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88752
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 14 Nov 2009 03:27:21 +0000 (03:27 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88751
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 14 Nov 2009 03:24:39 +0000 (03:24 +0000)]
Switch -verify implementation to use VerifyDiagnosticClient.
- Not tested, but -verify with multiple inputs should work now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88750
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 14 Nov 2009 03:24:04 +0000 (03:24 +0000)]
Fix broken tests, exposed by improved -verify.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88749
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 14 Nov 2009 03:23:19 +0000 (03:23 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88748
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 14 Nov 2009 03:17:38 +0000 (03:17 +0000)]
Diagnose ambiguity of operator delete and operator delete[]. Sebastian, please review.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88747
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 14 Nov 2009 02:48:04 +0000 (02:48 +0000)]
Pass Preprocessor through DiagnosticClient::BeginSourceFile.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88744
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 14 Nov 2009 02:47:17 +0000 (02:47 +0000)]
Add ASTConsumer to CompilerInstance.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88743
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 14 Nov 2009 02:18:31 +0000 (02:18 +0000)]
Generate the old API when sending message to super
in a category implementation (objc 32bit api related).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88741
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 14 Nov 2009 01:51:50 +0000 (01:51 +0000)]
Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88735
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 14 Nov 2009 01:20:54 +0000 (01:20 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88733
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 14 Nov 2009 01:20:48 +0000 (01:20 +0000)]
Add static version of Preprocessor::getSpelling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88732
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 14 Nov 2009 01:20:40 +0000 (01:20 +0000)]
Move CompilerInstance::set* methods out-of-line.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88731
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 14 Nov 2009 01:05:20 +0000 (01:05 +0000)]
Move definition of GRExprEngine::ProcessEndPath() out-of-line.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88729
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Sat, 14 Nov 2009 00:14:13 +0000 (00:14 +0000)]
Mangling support for typeinfo names.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88726
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 13 Nov 2009 23:59:09 +0000 (23:59 +0000)]
Revert r88718, which does NOT solve the constructor-template-as-copy-constructor issue. Big thanks to John for finding this
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88724
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 23:45:53 +0000 (23:45 +0000)]
Handle descructor printing better.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88723
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 13 Nov 2009 23:45:44 +0000 (23:45 +0000)]
Template argument deduction of a non-type template parameter from a
template argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88722
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 13 Nov 2009 23:14:53 +0000 (23:14 +0000)]
A constructor template cannot be instantiated to a copy
constructor. Make sure that such declarations can never be formed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88718
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 23:13:20 +0000 (23:13 +0000)]
Also track address points for primaries bases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88717
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 13 Nov 2009 22:29:45 +0000 (22:29 +0000)]
Code gen. For virtual destructor call on array objects
(still part of pr5472).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88712
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 22:12:05 +0000 (22:12 +0000)]
More VTT and constructor vtable testcases from recent work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88710
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 21:55:26 +0000 (21:55 +0000)]
Add more testcase for construction vtables and VTTs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88702
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 21:40:38 +0000 (21:40 +0000)]
Add some more VTT testcases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88699
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 13 Nov 2009 21:23:46 +0000 (21:23 +0000)]
Obvious fix for PR5474.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88696
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 13 Nov 2009 21:20:14 +0000 (21:20 +0000)]
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
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88695
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 13 Nov 2009 20:11:49 +0000 (20:11 +0000)]
Clear temporaries in more places.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88687
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 20:03:22 +0000 (20:03 +0000)]
Remove test case's dependency on header file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88685
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 20:00:28 +0000 (20:00 +0000)]
Add two new test cases for the Malloc/Free checker. Both have to do with
storing malloc'ed memory to global storage.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88684
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 19:53:32 +0000 (19:53 +0000)]
Add test case that shows a leak we don't catch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88683
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 19:36:46 +0000 (19:36 +0000)]
Add a testcase for the recent VTT work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88681
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 13 Nov 2009 19:27:47 +0000 (19:27 +0000)]
Code gen for arrady delete operator. Fixes pr5472.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88680
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 13 Nov 2009 19:21:49 +0000 (19:21 +0000)]
Fix bug Doug noticed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88679
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 19:13:56 +0000 (19:13 +0000)]
Add test for expr.delete p5, with a FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88678
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 13 Nov 2009 19:10:24 +0000 (19:10 +0000)]
Do not store DIDescriptor directly into a container. Store MDNode directly, through TrackingVH.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88677
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 18:53:35 +0000 (18:53 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88676
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Fri, 13 Nov 2009 18:50:18 +0000 (18:50 +0000)]
add missing slashes to separator line; also testing commit access
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88675
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 18:49:48 +0000 (18:49 +0000)]
Use 'eq' operator, and enable regular experimental checks when --experimental-checks is passed to scan-build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88673
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 18:46:29 +0000 (18:46 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88671
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 13 Nov 2009 18:44:21 +0000 (18:44 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88670
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 13 Nov 2009 18:34:26 +0000 (18:34 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88668
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 18:32:08 +0000 (18:32 +0000)]
Add CompilerInstance utility functions for creating output files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88667
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 13 Nov 2009 17:08:56 +0000 (17:08 +0000)]
Instead of storing CXXMethodDecls in the vtable builder, store GlobalDecls so we can represent both the complete and deleting destructors. Also, when encountering a destructor decl, emit entries for both the complete and deleting destructors. Mike, please review.
With this change, FileCheck builds and runs the clang test suite without failures!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88663
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 13 Nov 2009 17:04:35 +0000 (17:04 +0000)]
Don't bind arguments to temporaries if the argument has a reference type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88662
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 16:46:11 +0000 (16:46 +0000)]
Remove local splitLines reimplementation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88661
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 10:37:48 +0000 (10:37 +0000)]
Add output file list to CompilerInstance, so that it can track them instead of
forcing all clients to do it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87103
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 10:18:59 +0000 (10:18 +0000)]
clang-cc: Move output file initialization closer to use.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87102
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 09:57:06 +0000 (09:57 +0000)]
Simplify, in anticipation of introducing explicit action instances.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87101
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 09:36:05 +0000 (09:36 +0000)]
Add CodeCompletion consumer to CompilerInvocation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87100
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 08:58:20 +0000 (08:58 +0000)]
Rework Sema code completion interface.
- Provide Sema in callbacks, instead of requiring it in constructor. This
eliminates the need for a factory function. Clients now just pass the object
to consume the results in directly.
- CodeCompleteConsumer is cheap to construct, so building it whenever we are
doing code completion is reasonable.
Doug, please review.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87099
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 08:21:10 +0000 (08:21 +0000)]
Add CompilerInstance::createPCHExternalASTSource.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87097
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 08:20:57 +0000 (08:20 +0000)]
Add CompilerInstance::has* methods for testing if the instance has a particular
subobject.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87096
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 08:20:47 +0000 (08:20 +0000)]
Add ASTContext to CompilerInstance.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87095
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 13 Nov 2009 07:48:11 +0000 (07:48 +0000)]
Malloc checker basically works now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87094
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 13 Nov 2009 07:25:27 +0000 (07:25 +0000)]
Hook up Malloc checker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87093
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 13 Nov 2009 06:53:04 +0000 (06:53 +0000)]
Check in a new interface of Checker, which will soon be used.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87092
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 13 Nov 2009 06:04:01 +0000 (06:04 +0000)]
GRStateManager::CurrentStmt is not used. Remove it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87091
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 05:52:34 +0000 (05:52 +0000)]
Add CompilerInstance::createDiagnostics, and move clang-cc to it.
clang-cc.cpp is now under 1k lines, if anyone is counting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87090
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 05:52:19 +0000 (05:52 +0000)]
Add a FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87089
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 05:52:11 +0000 (05:52 +0000)]
Add Preprocessor to CompilerInstance, and move clang-cc CreatePreprocessor to
CompilerInstance::createPreprocessor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87088
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 05:51:54 +0000 (05:51 +0000)]
Wherein the TargetInfo argument to Preprocessor is made 'const' and propogated.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87087
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 13 Nov 2009 05:46:16 +0000 (05:46 +0000)]
Include header for printf.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87086
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 13 Nov 2009 05:13:58 +0000 (05:13 +0000)]
Use StringRef::split instead of SplitString.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87085
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 13 Nov 2009 04:45:41 +0000 (04:45 +0000)]
Add a special BuildVirtualCall that's going to be used for building calls to destructors. This is needed because when compiling:
struct A {
virtual ~A();
};
void f(A* a) {
delete a;
}
A's deleting destructor should be called.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87083
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 13 Nov 2009 04:34:45 +0000 (04:34 +0000)]
Fix two bugs with temporaries:
1. For
A f() {
return A();
}
we were incorrectly calling the A destructor on the returned object.
2. For
void f(A);
void g() {
A a;
f(a);
}
we were incorrectly not calling the copy constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87082
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 13 Nov 2009 04:25:07 +0000 (04:25 +0000)]
Move GlobalDecl to its own file. Also add DenseMapInfo traits.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87081
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 04:12:06 +0000 (04:12 +0000)]
Add {File,Source}Manager to CompilerInstance.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87079
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 03:51:44 +0000 (03:51 +0000)]
Add CompilerInstance, and starting moving clang-cc to it.
- The design philosophy is in the CompilerInstance doxyment, if you don't agree
with it now would be a good time to speak up.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87078
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 03:14:14 +0000 (03:14 +0000)]
Only flush plist diagnostics once.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87073
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 03:02:57 +0000 (03:02 +0000)]
Fix recently introduced use-after-free error reported in <rdar://problem/
7387478 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87072
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 02:35:38 +0000 (02:35 +0000)]
Refine construction vtables; they don't include bits that don't have
virtual bases unless they are morally virtual.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87071
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 02:13:54 +0000 (02:13 +0000)]
Refine the construction vtables with respect to offsets. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87067
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 02:06:12 +0000 (02:06 +0000)]
Move input kind identification (-x) into FrontendOptions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87066
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 01:58:01 +0000 (01:58 +0000)]
Pull static variable within function (for slightly faster startup time).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87065
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 13 Nov 2009 01:54:23 +0000 (01:54 +0000)]
Allow the tracking of address points for construction vtables as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87063
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 01:54:21 +0000 (01:54 +0000)]
retain/release checker: refactor some of the summary lookup logic for instance method summaries. No real functionality change, but it paves the way for new enhancements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87062
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 13 Nov 2009 01:15:47 +0000 (01:15 +0000)]
Add clang-cc option "-analyzer-experimental-checks" to enable experimental path-sensitive checks. The idea is to separate "barely working" or "skunkworks" checks from ones that should always run. Later we need more fine-grain checker control.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87053
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 01:02:19 +0000 (01:02 +0000)]
Move -target-{triple,abi} options into FrontendOptions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87051
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 13 Nov 2009 01:02:10 +0000 (01:02 +0000)]
Move code completion options to clang-cc
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87050
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Nov 2009 00:57:01 +0000 (00:57 +0000)]
add a fixme, inheriting from PointerIntPair is gross :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87048
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 12 Nov 2009 23:52:56 +0000 (23:52 +0000)]
Move FixItAtLocations into FrontendOptions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87046
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 12 Nov 2009 23:52:46 +0000 (23:52 +0000)]
clang-cc: Keep Verbose option with HeaderSearchOptions, for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87045
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 12 Nov 2009 23:52:32 +0000 (23:52 +0000)]
Add FrontendOptions, and starting moving clang-cc to it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87044
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 12 Nov 2009 23:36:21 +0000 (23:36 +0000)]
Refine which vtbl is refernced in VTTs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87043
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 12 Nov 2009 23:14:15 +0000 (23:14 +0000)]
Refine offsets into vtables for the VTT.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87041
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 12 Nov 2009 22:56:32 +0000 (22:56 +0000)]
Refine vtable pointers for secondary vtables inside VTTs to point to
the right base vtable. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87039
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 12 Nov 2009 22:12:17 +0000 (22:12 +0000)]
We need the definition of NamedDecl in DeclContextInternals.h, since Clang is type-checking the template definition more thoroughly
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87037
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 12 Nov 2009 20:47:57 +0000 (20:47 +0000)]
Fix the offset calculations for non-virtual bases with overrides.
Refine the VTT entries for virtual bases to refer to the complete
object's vtable instead of constructor vtables.
Refine the AddressPoint calculations for VTT entries for virtual bases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87021
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 12 Nov 2009 20:14:24 +0000 (20:14 +0000)]
Fix a code gen bug in i386-apple-darwin (objc fragile abi), sending
message to 'super'. Fixes radar
7205866 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87017
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 12 Nov 2009 18:40:12 +0000 (18:40 +0000)]
Spell empty StringRef correctly (0 is a null StringRef, which is not the same).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87011
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 12 Nov 2009 18:38:13 +0000 (18:38 +0000)]
Recognize (and check) pointer-to-member template arguments that are
non-type template parameters or constants of pointer-to-member
type. Once checked, be sure to retain those pointer-to-member
constants as expressions if they are dependent, or as declarations if
they are not dependent.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87010
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 12 Nov 2009 18:21:39 +0000 (18:21 +0000)]
"Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for locations and types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87007
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 12 Nov 2009 17:49:47 +0000 (17:49 +0000)]
Use getNameAsCString() instead of getName().data()
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87001
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 12 Nov 2009 17:40:13 +0000 (17:40 +0000)]
When instantiating a reference to a non-type template parameter of pointer to
member type (e.g., T Class::*Member), build a pointer-to-member
constant expression. Previously, we we just building a simple
declaration reference expression, which meant that the expression was
not treated as a pointer to member.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87000
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 12 Nov 2009 17:24:48 +0000 (17:24 +0000)]
Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library.
This resolves the layering violation where CodeGen depended on Frontend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86998
91177308 -0d34-0410-b5e6-
96231b3b80d8