]>
granicus.if.org Git - clang/log
Chris Lattner [Sat, 5 Dec 2009 08:21:30 +0000 (08:21 +0000)]
various cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90657
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Dec 2009 06:49:57 +0000 (06:49 +0000)]
simplify a condition and add a testcase.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90652
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 5 Dec 2009 05:40:13 +0000 (05:40 +0000)]
fix rdar://
7446395 , a crash on invalid, by fixing a broken assertion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90647
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 5 Dec 2009 04:55:55 +0000 (04:55 +0000)]
Tweak "key function" rules so that they work for templates with virtual
inline functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90645
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 5 Dec 2009 02:17:18 +0000 (02:17 +0000)]
CIndex: For the time being, don't return translation units if we encounter an error during parsing.
- We need to be more careful in the rest of CIndex if we are to handle
possibly-invalid ASTs, and don't have much experience with this yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90643
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sat, 5 Dec 2009 02:14:08 +0000 (02:14 +0000)]
Integrate the following from the 'objective-rewrite' branch:
http://llvm.org/viewvc/llvm-project?view=rev&revision=71086
Note - This commit only includes the fix for:
<rdar://problem/
6309338 > slightly different error message format for Visual Studio.
The fix for <rdar://problem/
6845623 > from protocol to template. is separate/forthcoming.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90642
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 5 Dec 2009 01:05:03 +0000 (01:05 +0000)]
Skip actually generating the vtable unless we are defining it. This avoids
the side-effects of generating the methods in the vtable (including PR5676).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90635
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 5 Dec 2009 00:13:59 +0000 (00:13 +0000)]
Unbreak -ccc-cxx and -ccc-clang-cxx defaulting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90629
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 23:50:01 +0000 (23:50 +0000)]
Don't emit explicit specializations of static member variable declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90624
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 4 Dec 2009 23:26:17 +0000 (23:26 +0000)]
Add support for function try blocks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90622
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Fri, 4 Dec 2009 22:46:56 +0000 (22:46 +0000)]
Fix "using typename" and the instantiation of non-dependent using declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90614
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 4 Dec 2009 22:45:27 +0000 (22:45 +0000)]
Return bool as a bool instead of a uint64_t.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90610
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 22:35:50 +0000 (22:35 +0000)]
Be a little more clever about inline member functions that are marked inline in the inline class declaration but not in the actual definition:
class A {
inline void f();
}
void A::f() { }
This is not the most ideal solution, since it doesn't work 100% with regular functions (as my FIXME comment states).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90607
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 22:34:07 +0000 (22:34 +0000)]
Forgot this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90606
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 22:33:25 +0000 (22:33 +0000)]
Diagnose declarations of implicit member functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90605
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 4 Dec 2009 22:22:32 +0000 (22:22 +0000)]
Add an easy accessor for the end of the try/catch statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90604
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 4 Dec 2009 21:55:23 +0000 (21:55 +0000)]
Driver: Switch -ccc-* options to using the standard options functionality.
- I still want to get rid of them, but manually handling them isn't adding value.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90602
91177308 -0d34-0410-b5e6-
96231b3b80d8
John Thompson [Fri, 4 Dec 2009 21:51:28 +0000 (21:51 +0000)]
Fix for PR5650 - Revised vector_size attribute handling to be done earlier before declaration is finalized.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90600
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 4 Dec 2009 21:36:32 +0000 (21:36 +0000)]
Integrate the following from the 'objective-rewrite' branch:
http://llvm.org/viewvc/llvm-project?view=rev&revision=70978
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90597
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 4 Dec 2009 21:29:41 +0000 (21:29 +0000)]
Integrate the following from the 'objective-rewrite' branch:
http://llvm.org/viewvc/llvm-project?view=rev&revision=70926
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90596
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 4 Dec 2009 21:18:19 +0000 (21:18 +0000)]
Integrate the following from the 'objective-rewrite' branch:
http://llvm.org/viewvc/llvm-project?view=rev&revision=70922
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90595
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Fri, 4 Dec 2009 21:11:13 +0000 (21:11 +0000)]
Put in FIXME that this mangling is not official in.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90594
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 4 Dec 2009 21:08:40 +0000 (21:08 +0000)]
OptTable: Allow option groups to be used to define "help groups", which will
collate the options inside that group.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90592
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 4 Dec 2009 21:08:25 +0000 (21:08 +0000)]
OptParser: Add HelpHidden flag.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90591
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Fri, 4 Dec 2009 21:01:37 +0000 (21:01 +0000)]
Switch mangling of literal operator names to a string that's
a) legal
b) likely to be chosen as the official mangling
This will break ABI compatibility with all literal operator names,
so you may need to recompile any such code. Sorry.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90587
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 4 Dec 2009 20:55:13 +0000 (20:55 +0000)]
Be sure to instantiate rtti for non-polymorphic bases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90586
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 20:34:55 +0000 (20:34 +0000)]
Teach AnalysisContext::getBody() about BlockDecls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90585
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 20:34:31 +0000 (20:34 +0000)]
Teach 'ExecutionContinues' (part of BugReporter's diagnostic generation) about BlockDecls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90584
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 20:33:25 +0000 (20:33 +0000)]
Include BlockDeclRefExprs in constructed CFGs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90583
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 20:32:20 +0000 (20:32 +0000)]
Replace SymbolReaper::isLive(VarDecl) with SymbolReaper::isLive(VarRegion).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90582
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 19:33:17 +0000 (19:33 +0000)]
When generating a virtual destructor, don't try to make a virtual call to the base class destructor because then we'll just re-enter the same destructor!
This was done to fix PR5619, so I went ahead and passed a dummy VTT pointer for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90578
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 4 Dec 2009 19:31:58 +0000 (19:31 +0000)]
Add gcc's -no-canonical-prefixes option to clang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90577
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 4 Dec 2009 19:21:57 +0000 (19:21 +0000)]
Fixup nested try blocks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90576
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 4 Dec 2009 19:03:47 +0000 (19:03 +0000)]
Fix warning and be sure to set up the rethrow pointer if we fall off
the end of all the catches.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90574
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 18:36:22 +0000 (18:36 +0000)]
Rename 'Class' to 'MostDerivedClass'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90573
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 16:24:46 +0000 (16:24 +0000)]
Store the vtable components in a SmallVector.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90571
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 16:22:27 +0000 (16:22 +0000)]
Use a different ConstantArray::get.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90570
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 16:19:30 +0000 (16:19 +0000)]
Move the vtable vector directly into the Vtable builder.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90569
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 15:49:02 +0000 (15:49 +0000)]
Change getIndex to return false if the index wasn't found. Avoids an extra hash lookup.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90568
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 08:52:11 +0000 (08:52 +0000)]
Minor cleanup; no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90565
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 08:40:51 +0000 (08:40 +0000)]
Remove unused argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90563
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 08:36:58 +0000 (08:36 +0000)]
Eliminate submethods vector.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90562
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 08:34:14 +0000 (08:34 +0000)]
Eliminate the inner loop in VtableBuilder::OverrideMethod.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90561
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 4 Dec 2009 08:17:40 +0000 (08:17 +0000)]
PR5684: Fix refacto, the backend consumer was copying the Diagnostic object,
which meant that hasErrorOccurred() checks to prevent codegen-on-invalid weren't
working.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90560
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 4 Dec 2009 08:17:33 +0000 (08:17 +0000)]
ASTUnit/CIndex: Explicitly track the top-level decls when using an ASTUnit made
from a source file.
- This allows CIndex to avoid iterating over all the top-level decls when using
a PCH, which means we deserialize far fewer decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90559
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 4 Dec 2009 08:17:18 +0000 (08:17 +0000)]
Ignore -fsched-interblock and -freorder-blocks to the ignored -f flags, we have
no plans to support invasive optimization flags.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90558
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 07:18:51 +0000 (07:18 +0000)]
Make sure to call PerformObjectMemberConversion where necessary.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90555
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 4 Dec 2009 07:06:35 +0000 (07:06 +0000)]
Use PresumedLoc when emitting the 'included from' diagnostics. For a malformed
test like this:
#line 4 "foo"
#define XX ?
#if XX
#endif
We now emit:
In file included from t.c:7:
foo:7:5: error: invalid token at start of a preprocessor expression
#if XX
^
foo:5:12: note: instantiated from:
#define XX ?
^
instead of:
In file included from t.c:7:
foo:7:5: error: invalid token at start of a preprocessor expression
#if XX
^
./t.h:6:12: note: instantiated from:
#define XX ?
^
(where the note doesn't obey #line or print the include stack when needed).
This fixes PR5617
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90554
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 06:57:49 +0000 (06:57 +0000)]
Rename instance variable to avoid name conflict with parameters, and modify addTransition() to compare the correct state values.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90552
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 06:47:41 +0000 (06:47 +0000)]
Revert r90546.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90551
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 06:46:54 +0000 (06:46 +0000)]
Missed change from last commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90550
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 06:40:45 +0000 (06:40 +0000)]
Make the type of the Decl referred to by a MemberExpr a bit more precise.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90549
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 4 Dec 2009 06:36:49 +0000 (06:36 +0000)]
the assertion says state is not NULL. When state is not NULL, getState()
returns state. So simplify the predicate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90546
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 06:23:23 +0000 (06:23 +0000)]
Correctly mangle the 'std' namespace inside extern "C++" blocks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90544
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 4 Dec 2009 06:14:03 +0000 (06:14 +0000)]
minor tidy.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90543
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 05:51:56 +0000 (05:51 +0000)]
Make sure that overridden method decls are always canonical.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90542
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 04:30:55 +0000 (04:30 +0000)]
Test for non-canonical decl and vtables.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90541
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 04:30:03 +0000 (04:30 +0000)]
Fix regression in vtable improvements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90540
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 4 Dec 2009 03:57:07 +0000 (03:57 +0000)]
Try/catch statements seem to be working well enough to turn on.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90538
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 4 Dec 2009 03:55:53 +0000 (03:55 +0000)]
Disable for now, doesn't play nice with the temporary code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90537
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 03:54:56 +0000 (03:54 +0000)]
Rename method to something easier to search for.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90536
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 03:52:52 +0000 (03:52 +0000)]
More work in preparation of getting rid of the submethods loop.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90535
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 03:46:21 +0000 (03:46 +0000)]
Remove an unused member variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90534
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 03:41:37 +0000 (03:41 +0000)]
Add a way to get the index of a method. Assert that we have the same index for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90533
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 03:07:26 +0000 (03:07 +0000)]
Add a premature optimization.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90532
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 03:06:03 +0000 (03:06 +0000)]
Add the method directly to the vtable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90531
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:58:12 +0000 (02:58 +0000)]
Get rid of the PureVirtualMethods map.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90530
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:56:03 +0000 (02:56 +0000)]
Move handling of pure virtual methods to AppendMethods (and rename it to AppendMethodsToVtable).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90529
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:52:22 +0000 (02:52 +0000)]
Move covariant thunk handling to AppendMethods too.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90528
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:43:50 +0000 (02:43 +0000)]
Move 'this' pointer adjustment thunks to AppendMethods.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90527
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 02:43:40 +0000 (02:43 +0000)]
Make functions returning a struct indirectly evaluate the returned struct
directly into the sret pointer. This is an optimization in C, but is required
for correctness in C++ for classes with a non-trivial copy constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90526
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:39:04 +0000 (02:39 +0000)]
Factor appending methods to a vtable out into a separate function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90525
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:26:15 +0000 (02:26 +0000)]
Get rid of the Thunks struct too.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90524
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:22:02 +0000 (02:22 +0000)]
Remove the CovariantThunk struct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90523
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:14:12 +0000 (02:14 +0000)]
Remove the GlobalDecl from the Thunk as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90522
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 02:12:53 +0000 (02:12 +0000)]
Fix for PR5447: teach Evaluate to deal with floating-point conditionals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90521
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:11:21 +0000 (02:11 +0000)]
Remove the GlobalDecl from the CovariantThunk struct, we can just look it up in the Methods table now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90519
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:08:24 +0000 (02:08 +0000)]
Start populating the VtableMembers structure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90517
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 02:03:51 +0000 (02:03 +0000)]
Allow BlockInvocationContext to wrap either a BlockDecl* or a BlockDataRegion*, giving us choice in our degree of context-sensitivity.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90516
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 4 Dec 2009 02:01:07 +0000 (02:01 +0000)]
Add a data structure for efficient storing of vtable methods. Not used yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90515
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 4 Dec 2009 01:51:45 +0000 (01:51 +0000)]
Fixup reference binding for catch parameters.
Fixup throws and rethrows to use invoke as appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90513
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 01:30:56 +0000 (01:30 +0000)]
Update chunk of #if 0'ed code to remove fixed FIXME and make it compile. We
probably want to do some sort of performance assessment before enabling it,
though.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90510
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 01:28:56 +0000 (01:28 +0000)]
Refactor LocationContext creation logic into a single member template.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90509
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 00:50:10 +0000 (00:50 +0000)]
Refactor FoldingSet profiling code for LocationContexts, and add a new BlockInvocationContext to represent the invocation of a block.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90506
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 4 Dec 2009 00:30:06 +0000 (00:30 +0000)]
Fix for PR5679: make __builtin_prefetch a bit more flexible in what it accepts
as a constant integer. Also, some minor cleanup and improvements to the
diagnostics.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90504
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 00:26:31 +0000 (00:26 +0000)]
constify MemRegion* returned by MemRegionManager::getXXXRegion() methods.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90503
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Fri, 4 Dec 2009 00:07:04 +0000 (00:07 +0000)]
When recovering from an invalid forward reference to an enum type in C++,
create the enum type in the same scope as you would a record type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90500
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 4 Dec 2009 00:05:57 +0000 (00:05 +0000)]
More template-logic for MemRegion construction out of MemRegion.h and into MemRegion.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90499
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 3 Dec 2009 22:55:42 +0000 (22:55 +0000)]
These are done.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90494
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 3 Dec 2009 22:38:15 +0000 (22:38 +0000)]
Improve catch parameter bindings for scalar non-pointers. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90492
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Thu, 3 Dec 2009 22:31:13 +0000 (22:31 +0000)]
Lift the ObjCPropertyCallback out of local scope to unbreak VS2005 builds.
Make it an inner class of Parser to assuage access control.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90491
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 3 Dec 2009 20:31:57 +0000 (20:31 +0000)]
Add recursion guards to ice-checking and evaluation for declrefs, so we
don't infinitely recurse for cases we can't evaluate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90480
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 3 Dec 2009 19:35:02 +0000 (19:35 +0000)]
Try to make the output of PlistDiagnostics more deterministic by sorting PathDiagnostics before they are emitted. Fixes <rdar://problem/
7439668 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90478
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 3 Dec 2009 19:34:02 +0000 (19:34 +0000)]
Convert some methods in PathDiagnostic to return StringRefs instead of std::string&.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90477
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 3 Dec 2009 18:44:40 +0000 (18:44 +0000)]
A new helper function to set various bits in the class when
a new virtual function is declared/instantiated. it is used
in couple of places.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90470
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 3 Dec 2009 18:42:11 +0000 (18:42 +0000)]
Fix Clang tool translation to forward -fvisibility as separate arguments, the
old syntax isn't supported.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90469
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 3 Dec 2009 18:40:58 +0000 (18:40 +0000)]
Add utils/TestUtils, and sink pch-test.pl there.
Also, add a test for generator a C file with a very deep call stack.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90468
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 3 Dec 2009 18:33:45 +0000 (18:33 +0000)]
Unify the end-of-class code paths used by the parser and template
instantiation, to ensure that we mark class template specilizations as
abstract when we need to and perform checking of abstract classes.
Also, move the checking that determines whether we are creating a
variable of abstract class type *after* we check whether the type is
complete. Otherwise, we won't see when we have an abstract class
template specialization that is implicitly instantiated by this
declaration. This is the "something else" that Sebastian had noted
earlier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90467
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 3 Dec 2009 18:29:20 +0000 (18:29 +0000)]
Add another blocks test case illustrating how parameters passed-by-reference in block invocations are invalidated (just like function calls).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90466
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 3 Dec 2009 17:49:57 +0000 (17:49 +0000)]
When instantiating a class, if a base specifier is not dependent we still need to copy its attributes down to the instantiated class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90463
91177308 -0d34-0410-b5e6-
96231b3b80d8