]>
granicus.if.org Git - clang/log
Douglas Gregor [Tue, 9 Feb 2010 19:21:46 +0000 (19:21 +0000)]
Introduce a testbed for merging multiple ASTs into a single AST
context with the AST importer. WIP, still useless but at least it has
a test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95683
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 9 Feb 2010 19:11:53 +0000 (19:11 +0000)]
Fix lookup of fields from lazy bindings to check if the region is
NULL, not the store, to determine if a lookup succeeded. The store
can be null if it contained no bindings. This fixes a false positive
reported to me by a user of the analyzer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95679
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 9 Feb 2010 19:09:28 +0000 (19:09 +0000)]
Fix virtual bases' debug info.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95678
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 9 Feb 2010 18:51:44 +0000 (18:51 +0000)]
Tweak output.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95676
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 9 Feb 2010 18:46:58 +0000 (18:46 +0000)]
Add a check for a running Xcode before modifying its configuration files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95675
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 9 Feb 2010 17:57:50 +0000 (17:57 +0000)]
Mark implicit "this" argument as an artificial argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95673
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 9 Feb 2010 16:50:54 +0000 (16:50 +0000)]
Fix typo
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95664
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 9 Feb 2010 16:46:25 +0000 (16:46 +0000)]
Clearify Qt status a bit
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95663
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 9 Feb 2010 16:36:17 +0000 (16:36 +0000)]
Add Qt, CMake projects to the list of C++ projects we're working on compiling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95662
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 9 Feb 2010 08:22:03 +0000 (08:22 +0000)]
Update tests in -Asserts mode. These tests really need to be rewritten...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95658
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 9 Feb 2010 07:26:29 +0000 (07:26 +0000)]
Migrate the mish-mash of declaration checks in
Sema::ActOnUninitializedDecl over to InitializationSequence (with
default initialization), eliminating redundancy. More importantly, we
now check that a const definition in C++ has an initilizer, which was
an #if 0'd code for many, many months. A few other tweaks were needed
to get everything working again:
- Fix all of the places in the testsuite where we defined const
objects without initializers (now that we diagnose this issue)
- Teach instantiation of static data members to find the previous
declaration, so that we build proper redeclaration
chains. Previously, we had the redeclaration chain but built it
too late to be useful, because...
- Teach instantiation of static data member definitions not to try
to check an initializer if a previous declaration already had an
initializer. This makes sure that we don't complain about static
const data members with in-class initializers and out-of-line
definitions.
- Move all of the incomplete-type checking logic out of
Sema::FinalizeDeclaratorGroup; it makes more sense in
ActOnUnitializedDecl.
There may still be a few places where we can improve these
diagnostics. I'll address that as a separate commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95657
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 9 Feb 2010 02:48:28 +0000 (02:48 +0000)]
IRgen: Add CreateMemTemp, for creating an temporary memory object for a particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing.
- This fixes many many more places than the test case, but my feeling is we need to audit alignment systematically so I'm not inclined to try hard to test the individual fixes in this patch. If this bothers you, patches welcome!
PR6240.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95648
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 9 Feb 2010 01:02:53 +0000 (01:02 +0000)]
Fix PR number in test case
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95640
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 9 Feb 2010 00:57:12 +0000 (00:57 +0000)]
Reset the found-virtual-base state unless the *current* base produces a path,
not *any* base up to now has produced a path. Fixes PR 6254.
I'll do the access-control part of this patch RSN.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95638
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 9 Feb 2010 00:50:06 +0000 (00:50 +0000)]
Be more careful when checking initializer lists that involve reference
types; we don't want to give an expression reference type. Fixes PR6177.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95635
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 9 Feb 2010 00:37:32 +0000 (00:37 +0000)]
Implement a specific diagnostic when a class template partial
specialization does not use any of its template parameters, then
recover far more gracefully. Fixes PR6181.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95629
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 9 Feb 2010 00:10:00 +0000 (00:10 +0000)]
Pass inline keyword to optimizer as the new InlineHint function attribute.
At the moment the inlinehint attribute is ignored by the Inliner unless you
pass a -respect-inlinehint option. This will soon be the default.
The inlinehint attribute is set if the inline keyword is explicitly specified
on any declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95623
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 9 Feb 2010 00:04:09 +0000 (00:04 +0000)]
Convert tabs to spaces.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95621
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 23:57:20 +0000 (23:57 +0000)]
Fix grammar.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95618
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 23:56:51 +0000 (23:56 +0000)]
Tweak menu.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95617
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 23:55:36 +0000 (23:55 +0000)]
Really increase menu width...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95615
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 23:54:46 +0000 (23:54 +0000)]
Increase width of nav bar.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95612
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 23:52:41 +0000 (23:52 +0000)]
Add inclusion links for external JavaScript file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95611
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 23:50:54 +0000 (23:50 +0000)]
Switch to drop-down menu style.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95610
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Feb 2010 23:41:45 +0000 (23:41 +0000)]
When substituting a declaration non-type template argument for a
non-type template parameter that has reference type, augment the
qualifiers of the non-type template argument with those of the
referenced type. Fixes PR6250.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95607
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Feb 2010 23:11:56 +0000 (23:11 +0000)]
Clean up the CIndex interface to diagnostic ranges. Thanks, Daniel!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95602
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 8 Feb 2010 23:07:23 +0000 (23:07 +0000)]
Thread a source location into the template-argument deduction routines. There
may be some other places that could take advantage of this new information,
but I haven't really looked yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95600
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Feb 2010 23:03:06 +0000 (23:03 +0000)]
Note that a CXIndex cannot be destroyed until after all of its translation units have been destroyed
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95598
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Feb 2010 22:59:26 +0000 (22:59 +0000)]
Eliminate a pointer of storage in each ObjCInterfaceType and
ObjCObjectPointerType AST node by allocating the list of protocols
after the type node itself. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95597
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 8 Feb 2010 22:53:07 +0000 (22:53 +0000)]
Reapply r95393, without the change to CGExpr. I was wrong in assuming that the
element type always matched the converted LLVM type for ExprType.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95596
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Feb 2010 22:24:16 +0000 (22:24 +0000)]
Warn when cases are missing from a switch on a value of enumeration
type (-Wswitch), from Michal!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95592
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 22:16:08 +0000 (22:16 +0000)]
Remove table (for now). Doesn't look so hot.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95590
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 22:12:48 +0000 (22:12 +0000)]
Add images showing the results in a web browser and Xcode respectively.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95589
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Feb 2010 22:07:33 +0000 (22:07 +0000)]
Keep track of whether a tag was defined in a declarator vs. being
defined by itself, from Enea Zaffanella!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95586
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 8 Feb 2010 21:46:50 +0000 (21:46 +0000)]
Emit global references with constant initializers as constants. Fixes PR5585.
The standard actually says that such references should have internal linkage,
but gcc doesn't do that, so we probably can't get away with it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95577
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 21:39:53 +0000 (21:39 +0000)]
Remove link to Developer Meeting and tighten menu.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95576
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 21:36:47 +0000 (21:36 +0000)]
Add link to the current status of analysis support for C++.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95573
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 21:19:27 +0000 (21:19 +0000)]
Add some diagnostics for when we cannot update the original spec file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95572
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 8 Feb 2010 21:09:39 +0000 (21:09 +0000)]
Merge block/function pointer types with objc's __weak
attribute properly and avoid bogus warning. This is
an objective-c fix only. objective-c++ follows different code
pass and requires separate fix (which will come at a later time).
Fixes radar
7214820 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95571
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Feb 2010 21:09:39 +0000 (21:09 +0000)]
Implement basic importing and merging of variable declarations within
the AST importer. This doesn't actually do anything (yet), because we
don't have driver logic for merging ASTs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95570
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 20:54:01 +0000 (20:54 +0000)]
Add a Python script to change what version of Clang is used by Xcode for static analysis (and ONLY static analysis).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95569
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 8 Feb 2010 20:24:21 +0000 (20:24 +0000)]
Fix -Asserts warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95563
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 8 Feb 2010 19:58:40 +0000 (19:58 +0000)]
Add a test case for r95555.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95562
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 8 Feb 2010 19:51:59 +0000 (19:51 +0000)]
Simplify another switch/strcmp construct. No functionality/performance change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95561
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 8 Feb 2010 19:35:18 +0000 (19:35 +0000)]
When placing an annotation token over an existing annotation token, make sure that the new token's range extends to the end of the old token. Assert that in AnnotateCachedTokens. Fixes PR6248.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95555
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 8 Feb 2010 19:26:07 +0000 (19:26 +0000)]
Fix the crash-on-invalid from PR6259.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95554
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Mon, 8 Feb 2010 18:54:05 +0000 (18:54 +0000)]
Ensure that a operator delete overload is rocognized regardless of cv-quals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95553
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 8 Feb 2010 18:38:55 +0000 (18:38 +0000)]
Reapply r95546, no intended change in performance or functionality.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95552
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 16:45:01 +0000 (16:45 +0000)]
Revert 95546 since it changed the algorithmic characteristics of the convention lookup.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95547
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 8 Feb 2010 16:39:00 +0000 (16:39 +0000)]
Simplify code with StringRef.
3 files changed, 76 insertions(+), 153 deletions(-)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95546
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Feb 2010 16:18:51 +0000 (16:18 +0000)]
Revert 95541.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95545
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nuno Lopes [Mon, 8 Feb 2010 15:41:06 +0000 (15:41 +0000)]
set svn:ignore
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95544
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Feb 2010 15:18:58 +0000 (15:18 +0000)]
Cache imported types
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95543
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 8 Feb 2010 09:30:02 +0000 (09:30 +0000)]
Rename: GRState::getSVal(Stmt*) => getExprVal(),
GRState::getSVal(MemRegion*) => Load().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95541
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 8 Feb 2010 08:48:05 +0000 (08:48 +0000)]
BindInternal is redundant. Remove it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95540
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 8 Feb 2010 08:43:02 +0000 (08:43 +0000)]
Like for symbolic region, automatically create a element zero region for
alloca region.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95539
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 8 Feb 2010 08:17:02 +0000 (08:17 +0000)]
Unify the implementation of getLValueElement of store managers.
It's more sophisticated than the original one of BasicStore. But it does
matter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95536
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 8 Feb 2010 07:58:06 +0000 (07:58 +0000)]
Unify the implementation of getLValueIvar and getLValueField of store managers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95535
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 8 Feb 2010 07:10:35 +0000 (07:10 +0000)]
Move common methods to the base StoreManager class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95534
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Mon, 8 Feb 2010 06:42:49 +0000 (06:42 +0000)]
This doesn't seem to be used code as it didn't break any tests, but fix the
glaring logic bug anyways. =D
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95533
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 8 Feb 2010 06:00:22 +0000 (06:00 +0000)]
ASTContext is now a reference member of StoreManager.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95531
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 8 Feb 2010 05:40:07 +0000 (05:40 +0000)]
Add support for binding and retrieving VarRegions in flat store.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95529
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 7 Feb 2010 21:33:28 +0000 (21:33 +0000)]
Require a complete type before examining base classes during template argument
deduction. This requires refactoring the deduction to have access to the Sema
object instead of merely the ASTContext. Still leaves something to be desired
due to poor source location.
Fixes PR6257 and half of PR6259.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95528
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 7 Feb 2010 19:45:40 +0000 (19:45 +0000)]
Make sure to set vtable pointers in the destructors as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95525
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 7 Feb 2010 17:37:13 +0000 (17:37 +0000)]
Use the right type when taking the address of a non-virtual member function pointer. Fixes PR6258.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95524
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 7 Feb 2010 10:31:35 +0000 (10:31 +0000)]
Workaround for friend template instantiation crash in PR5848, from Keir Mierle!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95517
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 7 Feb 2010 08:38:28 +0000 (08:38 +0000)]
Fix assertion failure when parsing linkage specifications (PR5921),
from Keir Mierle!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95516
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sam Weinig [Sun, 7 Feb 2010 06:32:43 +0000 (06:32 +0000)]
Roll r95513 back in.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95515
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sam Weinig [Sun, 7 Feb 2010 05:26:25 +0000 (05:26 +0000)]
Roll out r95513, it seems to have broken self hosting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95514
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sam Weinig [Sun, 7 Feb 2010 04:44:10 +0000 (04:44 +0000)]
Add PCH support for CXXBoolLiteralExpr and CXXNullPtrLiteralExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95513
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 7 Feb 2010 02:03:08 +0000 (02:03 +0000)]
Use the right linkage for static variables inside C++ inline functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95512
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 7 Feb 2010 01:44:36 +0000 (01:44 +0000)]
Improved handling of the visibility attribute. Declarations now inherit their parent's visibility.
(This is kind of a risky change, but I did a self-host build and everything appears to work fine!)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95511
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 7 Feb 2010 01:09:23 +0000 (01:09 +0000)]
Add attributes to namespace decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95510
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 6 Feb 2010 23:59:05 +0000 (23:59 +0000)]
Make EmitStartEHSpec and EmitEndEHSpec return early when exceptions are disabled.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95509
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 6 Feb 2010 23:23:06 +0000 (23:23 +0000)]
Add support for threadsafe statics, and make them the default (matching gcc).
Daniel, I'd appreciate a review of the driver/cc1 parts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95508
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 6 Feb 2010 20:00:21 +0000 (20:00 +0000)]
Call destructors for constructed bases as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95502
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 6 Feb 2010 19:50:17 +0000 (19:50 +0000)]
If a constructor throws an exception we need to execute the destructors for all fully constructed members. Fixes ctor_dtor_count.cpp in the test suite.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95501
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 6 Feb 2010 10:23:53 +0000 (10:23 +0000)]
Use a substituted type when determining how to substitute in non-type template
params. Don't insert addrof operations when matching against a pointer;
array/function conversions should take care of this for us, assuming the
argument type-checked in the first place. Add a fixme where we seem to be
using a less-restrictive reference type than we should.
Fixes PR 6249.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95495
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 6 Feb 2010 09:59:24 +0000 (09:59 +0000)]
Silence GCC warning and stay in 80 cols.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95494
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 6 Feb 2010 08:42:39 +0000 (08:42 +0000)]
Extract a function to instantiate references to value template parameters.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95491
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 6 Feb 2010 06:08:09 +0000 (06:08 +0000)]
Update checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95490
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 6 Feb 2010 05:31:15 +0000 (05:31 +0000)]
Don't diagnose missing noreturns for uninstantiated templates. Fixes PR6247.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95487
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 6 Feb 2010 05:15:45 +0000 (05:15 +0000)]
Switch CodeGen's "is this variable declaration a definition?" logic
over to VarDecl::isThisDeclarationADefinition(), which handles
variables declared with linkage specifications better (among other
things). CMake 2.9 (from CVS) now builds with clang++ and is somewhat
functional.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95486
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 6 Feb 2010 04:52:27 +0000 (04:52 +0000)]
Only append 'L' for internal variable declarations, not all declarations. (Found by the mangle checker, yay)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95485
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 6 Feb 2010 04:04:46 +0000 (04:04 +0000)]
Also teach RegionStore::RetrieveVar() to handle 'static' pointers that are implicitly initialized to NULL.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95479
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 6 Feb 2010 03:57:59 +0000 (03:57 +0000)]
Fix regression in RegionStore (from BasicStore) where static variables were not treated as being implicitly initialized to 0 (and instead were getting symbolicated).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95478
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 6 Feb 2010 03:29:18 +0000 (03:29 +0000)]
Remove unused variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95476
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 6 Feb 2010 02:44:09 +0000 (02:44 +0000)]
Use the correct function info for constructors when applying function attributes. Fixes PR6245.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95474
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 6 Feb 2010 02:27:10 +0000 (02:27 +0000)]
Implement a warning diagnostic for weak vtables. Fixes PR6116.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95472
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 6 Feb 2010 01:50:47 +0000 (01:50 +0000)]
Teach Sema how to instantiate a local function declaration properly. Fixes
PR 5517.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95470
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 6 Feb 2010 01:09:36 +0000 (01:09 +0000)]
Assert when we try to mangle a dependent template name, rather than
crashing unceremoniously.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95464
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 6 Feb 2010 01:07:37 +0000 (01:07 +0000)]
Per discussion, remove the explicit restriction on static const data members with
out-of-line initializers as integer constant expressions. Fixes PR6206.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95463
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 6 Feb 2010 00:30:00 +0000 (00:30 +0000)]
Teach RegionStore::InvalidateRegions() to also invalidate static variables referenced by blocks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95459
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 6 Feb 2010 00:25:16 +0000 (00:25 +0000)]
Rearrange some checks to avoid call to isCopyConstructor() and clarify path
taken for non-trivial constructors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95457
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 5 Feb 2010 23:51:14 +0000 (23:51 +0000)]
Update Clang C++ status, with a more project-centric focus.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95455
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 5 Feb 2010 22:49:09 +0000 (22:49 +0000)]
Fix a bogus assertion after adjusting the type of a substituted
non-type template argument for a non-type template parameter of
pointer type. Fixes PR6244.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95447
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 5 Feb 2010 22:40:03 +0000 (22:40 +0000)]
Cope with finding the "instantiated" declaration when we are
type-checking within a template definition. In this case, the
"instantiated" declaration is just the declaration itself, found
within the current instantiation. Fixes PR6239.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95442
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Fri, 5 Feb 2010 21:31:56 +0000 (21:31 +0000)]
Standardize the parsing of function type attributes in a way that
follows (as conservatively as possible) gcc's current behavior: attributes
written on return types that don't apply there are applied to the function
instead, etc. Only parse CC attributes as type attributes, not as decl attributes;
don't accepet noreturn as a decl attribute on ValueDecls, either (it still
needs to apply to other decls, like blocks). Consistently consume CC/noreturn
information throughout codegen; enforce this by removing their default values
in CodeGenTypes::getFunctionInfo().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95436
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 5 Feb 2010 21:28:51 +0000 (21:28 +0000)]
Add guard in RewriteObjC::HandleTopLevelSingleDecl() to not do
anything when Sema has issued an error. This matches the behavior in
RewriteObjC::HandleTranslationUnit().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95434
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 5 Feb 2010 21:10:36 +0000 (21:10 +0000)]
Revert r95393, which broke Clang's self-host.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95430
91177308 -0d34-0410-b5e6-
96231b3b80d8