Douglas Gregor
05e7ca3659
Switch the std::multimap shadow map used in code completion to an
...
llvm::DenseMap, for a 20% performance improvement in the
Cocoa-big-list performance benchmark.
llvm-svn: 90715
2009-12-06 20:23:50 +00:00
Chris Lattner
2b6651e908
this is really about both PR's, 4452 is "don't crash", 4451 is "recover nicely".
...
llvm-svn: 90714
2009-12-06 19:11:41 +00:00
Chris Lattner
71d5bf1c5d
implement PR4451, improving error recovery for a mistaken : where a :: was
...
intended. On the first testcase in the bug, we now produce:
cxx-decl.cpp:12:2: error: unexpected ':' in nested name specifier
y:a a2;
^
::
instead of:
t.cc:8:1: error: C++ requires a type specifier for all declarations
x:a a2;
^
t.cc:8:2: error: invalid token after top level declarator
x:a a2;
^
;
t.cc:9:11: error: use of undeclared identifier 'a2'
x::a a3 = a2;
^
llvm-svn: 90713
2009-12-06 19:08:11 +00:00
Chris Lattner
8c56c49fe0
simplify logic.
...
llvm-svn: 90712
2009-12-06 18:34:27 +00:00
Anders Carlsson
3efc6e6f46
Add rudimentary support for member pointers to CGDebugInfo.
...
llvm-svn: 90711
2009-12-06 18:00:51 +00:00
Chris Lattner
3c7b86f4ee
remove some extraneous syntax: sourceloc implicitly converts to sourcerange.
...
llvm-svn: 90710
2009-12-06 17:36:05 +00:00
Chris Lattner
72ecc68e11
use new helpers to simplify code.
...
llvm-svn: 90709
2009-12-06 17:22:42 +00:00
Zhongxing Xu
efd9ae8a85
Add test case for mktemp. Patch by Lei Zhang.
...
llvm-svn: 90706
2009-12-06 12:45:46 +00:00
Daniel Dunbar
6c8884ce08
Drop Preprocessor/open-failure test, it breaks running the test suite as root,
...
and I can't figure out how to write it more portably.
llvm-svn: 90705
2009-12-06 10:07:46 +00:00
Daniel Dunbar
1597da4c05
Document that CompilerInvocation::createDiagnostics keeps a reference to the DiagnosticOptions, and update callers to make sure they don't pass in a temporary.
...
llvm-svn: 90704
2009-12-06 09:56:30 +00:00
Daniel Dunbar
a6cb9f21be
Fix an off by one in findEndOfWord, which could scan past the end of the string in a corner case.
...
llvm-svn: 90703
2009-12-06 09:56:18 +00:00
Eli Friedman
eddf1213e2
Fix a slight oversight in computing whether a copy constructor is elidable.
...
Fixes PR5695.
llvm-svn: 90702
2009-12-06 09:26:33 +00:00
Daniel Dunbar
58ecb2ab51
Unbreak and add test case for r90276, a situation in which getBuffer is expected to fail.
...
Also, update SourceManager.h doxyments for getBuffer() to reflect reality.
llvm-svn: 90701
2009-12-06 09:19:25 +00:00
Daniel Dunbar
1776679e71
Change Preprocessor::EnterSourceFile to make ErrorStr non-optional, clients should be forced to deal with error conditions.
...
llvm-svn: 90700
2009-12-06 09:19:12 +00:00
Daniel Dunbar
7cea5f1747
Add a pretty horrible hack to prevent clang from crashing with inconsistent PCH
...
files.
- The issue is that PCH uses a stat cache, which may reference files which have
been deleted or moved. In such cases ContentCache::getBuffer was returning 0
but most clients are incapable of dealing with this (i.e., they don't).
For the time being, resolve this issue by just making up some invalid file
contents and. Eventually we should detect that we are in an inconsistent
situation and error out with a nice message that the PCH is out of date.
llvm-svn: 90699
2009-12-06 05:43:36 +00:00
Steve Naroff
287a2bfc03
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=86026
Note: The 'improved debugging' changes weren't integrated (since they were later reverted, since they didn't improve debugging).
llvm-svn: 90693
2009-12-06 01:52:22 +00:00
Steve Naroff
94ed6dc906
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=82174
llvm-svn: 90692
2009-12-06 01:48:44 +00:00
Steve Naroff
2b3843df1b
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=72893
llvm-svn: 90690
2009-12-06 01:33:56 +00:00
Anders Carlsson
fe5f7d916f
Set the correct linkage for VTTs as well.
...
llvm-svn: 90689
2009-12-06 01:09:21 +00:00
Steve Naroff
66aaa39568
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=71473
llvm-svn: 90688
2009-12-06 01:02:14 +00:00
Anders Carlsson
232324c5c0
More linkage improvements.
...
llvm-svn: 90687
2009-12-06 00:53:22 +00:00
Anders Carlsson
0911ae8ef2
Pass the desired vtable linkage to GenerateVtable directly. Only call MaybeMarkVirtualImplicitMembersReferenced for non-inline functions.
...
llvm-svn: 90686
2009-12-06 00:23:49 +00:00
Anders Carlsson
7e28c5f2e2
Make GenerateVtable a private member function of CGVtableInfo.
...
llvm-svn: 90684
2009-12-06 00:01:05 +00:00
Eli Friedman
89c038e518
Fix for PR5693: shift some code into SetClassDeclAttributesFromBase so that
...
it gets called during template instantiation.
llvm-svn: 90682
2009-12-05 23:03:49 +00:00
Anders Carlsson
4ed44eb7d9
Only emit the vtable definition if the class has a key function and we're emitting it, or if the class doesn't have a key function and we are emitting the complete constructor.
...
llvm-svn: 90681
2009-12-05 22:42:54 +00:00
Anders Carlsson
0ab79e22ab
If a class does not have a key function, its linkage should be weak_odr.
...
llvm-svn: 90680
2009-12-05 22:24:38 +00:00
Anders Carlsson
58b271d450
Use createGlobalVariable for creating vtable variables too.
...
llvm-svn: 90679
2009-12-05 22:19:10 +00:00
Benjamin Kramer
acc5fa153d
Don't call back() on an empty vector.
...
llvm-svn: 90678
2009-12-05 22:16:51 +00:00
Steve Naroff
ec60b43ee2
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=71225
http://llvm.org/viewvc/llvm-project?view=rev&revision=73207
http://llvm.org/viewvc/llvm-project?view=rev&revision=73414
llvm-svn: 90677
2009-12-05 21:43:12 +00:00
Anders Carlsson
b3f54b748d
CodeGenModule::GenerateVtable now returns a pointer directly to the vtable and not to the address point.
...
llvm-svn: 90676
2009-12-05 21:28:12 +00:00
Anders Carlsson
a95d4c51dc
Make sure that hte vtable always has an i8* array type.
...
llvm-svn: 90675
2009-12-05 21:09:05 +00:00
Anders Carlsson
c8e39ec79f
Add a function for getting the vtable address point of a class.
...
llvm-svn: 90674
2009-12-05 21:03:56 +00:00
Anders Carlsson
b694f05ffb
Simplify BuildVTT.
...
llvm-svn: 90673
2009-12-05 21:02:25 +00:00
Anders Carlsson
b78d093fcc
Let the VTT builder pretend that getVtable returns a pointer to the vtable and not to the vtable address point.
...
llvm-svn: 90672
2009-12-05 20:58:49 +00:00
Anders Carlsson
78c2898e02
Change getCtorVtable to not return the address point offset, but the global variable.
...
llvm-svn: 90671
2009-12-05 20:42:53 +00:00
Anders Carlsson
5a1a84f9fa
Simplify some code.
...
llvm-svn: 90670
2009-12-05 18:38:15 +00:00
Anders Carlsson
21bbc1e705
Factor vtable related GlobalVariable creation out into a separate function. Add vtable linkage test.
...
llvm-svn: 90667
2009-12-05 17:04:47 +00:00
Anders Carlsson
19323e02e9
Update .xcodeproj file
...
llvm-svn: 90666
2009-12-05 16:07:02 +00:00
Steve Naroff
e70a52a00c
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=71086
http://llvm.org/viewvc/llvm-project?view=rev&revision=71107
Note: This fixes <rdar://problem/6845623> from protocol to template.
llvm-svn: 90665
2009-12-05 15:55:59 +00:00
Steve Naroff
c275f70bf9
Remove 'LangOpts' from Diagnostic (added in http://llvm.org/viewvc/llvm-project?view=rev&revision=90642 ).
...
Simply use the 'LangOpts' member already present in TextDiagnosticPrinter.
Sorry for the confusion!
llvm-svn: 90664
2009-12-05 12:23:07 +00:00
Benjamin Kramer
4053e5db54
Avoid trashing two temporary strings.
...
llvm-svn: 90663
2009-12-05 10:22:15 +00:00
Benjamin Kramer
ed60635d70
strcasecmp is unportable.
...
llvm-svn: 90662
2009-12-05 10:07:04 +00:00
Douglas Gregor
249d6826cd
Improve the performance of code completion by 2.2x when completing for ordinary names with Cocoa.h included, by drastically improving the performance of our results sorting.
...
llvm-svn: 90661
2009-12-05 09:08:56 +00:00
Chris Lattner
2da786f794
fix comment.
...
llvm-svn: 90660
2009-12-05 08:33:21 +00:00
Chris Lattner
ded98d4172
consolidate some tests.
...
llvm-svn: 90659
2009-12-05 08:30:04 +00:00
Chris Lattner
e99c110d06
implement rdar://7346691 by codegen'ing struct/array initializers
...
to a memset or a memcpy from a global when possible.
llvm-svn: 90658
2009-12-05 08:22:11 +00:00
Chris Lattner
e08ea7874a
various cleanups.
...
llvm-svn: 90657
2009-12-05 08:21:30 +00:00
Chris Lattner
ffcd06ea7c
simplify a condition and add a testcase.
...
llvm-svn: 90652
2009-12-05 06:49:57 +00:00
Chris Lattner
9a152e2570
fix rdar://7446395, a crash on invalid, by fixing a broken assertion.
...
llvm-svn: 90647
2009-12-05 05:40:13 +00:00
Eli Friedman
0846d52f70
Tweak "key function" rules so that they work for templates with virtual
...
inline functions.
llvm-svn: 90645
2009-12-05 04:55:55 +00:00
Daniel Dunbar
72fe5b1bcc
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.
llvm-svn: 90643
2009-12-05 02:17:18 +00:00
Steve Naroff
4fb3d9fcd7
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.
llvm-svn: 90642
2009-12-05 02:14:08 +00:00
Eli Friedman
6c08ce7706
Skip actually generating the vtable unless we are defining it. This avoids
...
the side-effects of generating the methods in the vtable (including PR5676).
llvm-svn: 90635
2009-12-05 01:05:03 +00:00
Daniel Dunbar
1b52d8c4ec
Unbreak -ccc-cxx and -ccc-clang-cxx defaulting.
...
llvm-svn: 90629
2009-12-05 00:13:59 +00:00
Anders Carlsson
a30e1750cd
Don't emit explicit specializations of static member variable declarations.
...
llvm-svn: 90624
2009-12-04 23:50:01 +00:00
Mike Stump
bee78dd31b
Add support for function try blocks.
...
llvm-svn: 90622
2009-12-04 23:26:17 +00:00
John McCall
b96ec56871
Fix "using typename" and the instantiation of non-dependent using declarations.
...
llvm-svn: 90614
2009-12-04 22:46:56 +00:00
Benjamin Kramer
62ab616666
Return bool as a bool instead of a uint64_t.
...
llvm-svn: 90610
2009-12-04 22:45:27 +00:00
Anders Carlsson
cfb65d7432
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).
llvm-svn: 90607
2009-12-04 22:35:50 +00:00
Anders Carlsson
1ed86de080
Forgot this.
...
llvm-svn: 90606
2009-12-04 22:34:07 +00:00
Anders Carlsson
1f78b2bf62
Diagnose declarations of implicit member functions.
...
llvm-svn: 90605
2009-12-04 22:33:25 +00:00
Mike Stump
bfcb650e96
Add an easy accessor for the end of the try/catch statement.
...
llvm-svn: 90604
2009-12-04 22:22:32 +00:00
Daniel Dunbar
acd6957b59
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.
llvm-svn: 90602
2009-12-04 21:55:23 +00:00
John Thompson
47981226d5
Fix for PR5650 - Revised vector_size attribute handling to be done earlier before declaration is finalized.
...
llvm-svn: 90600
2009-12-04 21:51:28 +00:00
Steve Naroff
b0e3390f53
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=70978
llvm-svn: 90597
2009-12-04 21:36:32 +00:00
Steve Naroff
f0df20a5ba
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=70926
llvm-svn: 90596
2009-12-04 21:29:41 +00:00
Steve Naroff
3ce3af2cb6
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=70922
llvm-svn: 90595
2009-12-04 21:18:19 +00:00
Alexis Hunt
9b3a395bf3
Put in FIXME that this mangling is not official in.
...
llvm-svn: 90594
2009-12-04 21:11:13 +00:00
Daniel Dunbar
78e9de56f4
OptTable: Allow option groups to be used to define "help groups", which will
...
collate the options inside that group.
llvm-svn: 90592
2009-12-04 21:08:40 +00:00
Daniel Dunbar
250bd17374
OptParser: Add HelpHidden flag.
...
llvm-svn: 90591
2009-12-04 21:08:25 +00:00
Alexis Hunt
bf2f0c2e34
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.
llvm-svn: 90587
2009-12-04 21:01:37 +00:00
Mike Stump
afe4764fa5
Be sure to instantiate rtti for non-polymorphic bases.
...
llvm-svn: 90586
2009-12-04 20:55:13 +00:00
Ted Kremenek
45805b9a50
Teach AnalysisContext::getBody() about BlockDecls.
...
llvm-svn: 90585
2009-12-04 20:34:55 +00:00
Ted Kremenek
ed2246aa2a
Teach 'ExecutionContinues' (part of BugReporter's diagnostic generation) about BlockDecls.
...
llvm-svn: 90584
2009-12-04 20:34:31 +00:00
Ted Kremenek
75d6fa27bd
Include BlockDeclRefExprs in constructed CFGs.
...
llvm-svn: 90583
2009-12-04 20:33:25 +00:00
Ted Kremenek
c32f2c2e0f
Replace SymbolReaper::isLive(VarDecl) with SymbolReaper::isLive(VarRegion).
...
llvm-svn: 90582
2009-12-04 20:32:20 +00:00
Anders Carlsson
ce460529c0
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.
llvm-svn: 90578
2009-12-04 19:33:17 +00:00
Rafael Espindola
73d4637545
Add gcc's -no-canonical-prefixes option to clang.
...
llvm-svn: 90577
2009-12-04 19:31:58 +00:00
Mike Stump
875912ac13
Fixup nested try blocks.
...
llvm-svn: 90576
2009-12-04 19:21:57 +00:00
Mike Stump
5c820758f5
Fix warning and be sure to set up the rethrow pointer if we fall off
...
the end of all the catches.
llvm-svn: 90574
2009-12-04 19:03:47 +00:00
Anders Carlsson
bad80eb792
Rename 'Class' to 'MostDerivedClass'
...
llvm-svn: 90573
2009-12-04 18:36:22 +00:00
Anders Carlsson
19462d681a
Store the vtable components in a SmallVector.
...
llvm-svn: 90571
2009-12-04 16:24:46 +00:00
Anders Carlsson
4e1d75f3ed
Use a different ConstantArray::get.
...
llvm-svn: 90570
2009-12-04 16:22:27 +00:00
Anders Carlsson
472404f8a6
Move the vtable vector directly into the Vtable builder.
...
llvm-svn: 90569
2009-12-04 16:19:30 +00:00
Anders Carlsson
7bb7076b51
Change getIndex to return false if the index wasn't found. Avoids an extra hash lookup.
...
llvm-svn: 90568
2009-12-04 15:49:02 +00:00
Eli Friedman
65d87222b2
Minor cleanup; no functionality change.
...
llvm-svn: 90565
2009-12-04 08:52:11 +00:00
Eli Friedman
81fb0d2656
Remove unused argument.
...
llvm-svn: 90563
2009-12-04 08:40:51 +00:00
Eli Friedman
c07aebee90
Eliminate submethods vector.
...
llvm-svn: 90562
2009-12-04 08:36:58 +00:00
Eli Friedman
3d2e9de337
Eliminate the inner loop in VtableBuilder::OverrideMethod.
...
llvm-svn: 90561
2009-12-04 08:34:14 +00:00
Daniel Dunbar
20c13165a0
PR5684: Fix refacto, the backend consumer was copying the Diagnostic object,
...
which meant that hasErrorOccurred() checks to prevent codegen-on-invalid weren't
working.
llvm-svn: 90560
2009-12-04 08:17:40 +00:00
Daniel Dunbar
644dca07b9
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.
llvm-svn: 90559
2009-12-04 08:17:33 +00:00
Daniel Dunbar
473ea40953
Ignore -fsched-interblock and -freorder-blocks to the ignored -f flags, we have
...
no plans to support invasive optimization flags.
llvm-svn: 90558
2009-12-04 08:17:18 +00:00
Eli Friedman
78cde14444
Make sure to call PerformObjectMemberConversion where necessary.
...
llvm-svn: 90555
2009-12-04 07:18:51 +00:00
Chris Lattner
2474a7e9c2
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
llvm-svn: 90554
2009-12-04 07:06:35 +00:00
Ted Kremenek
6e8541ddd0
Rename instance variable to avoid name conflict with parameters, and modify addTransition() to compare the correct state values.
...
llvm-svn: 90552
2009-12-04 06:57:49 +00:00
Ted Kremenek
f1e2c829d5
Revert r90546.
...
llvm-svn: 90551
2009-12-04 06:47:41 +00:00
Eli Friedman
3de20c55e9
Missed change from last commit.
...
llvm-svn: 90550
2009-12-04 06:46:54 +00:00
Eli Friedman
2cfcef65b7
Make the type of the Decl referred to by a MemberExpr a bit more precise.
...
llvm-svn: 90549
2009-12-04 06:40:45 +00:00
Zhongxing Xu
4db14cc577
the assertion says state is not NULL. When state is not NULL, getState()
...
returns state. So simplify the predicate.
llvm-svn: 90546
2009-12-04 06:36:49 +00:00
Anders Carlsson
5c9e7b16a5
Correctly mangle the 'std' namespace inside extern "C++" blocks.
...
llvm-svn: 90544
2009-12-04 06:23:23 +00:00
Chris Lattner
6aab73137a
minor tidy.
...
llvm-svn: 90543
2009-12-04 06:14:03 +00:00
Anders Carlsson
f3935b4d4b
Make sure that overridden method decls are always canonical.
...
llvm-svn: 90542
2009-12-04 05:51:56 +00:00
Eli Friedman
d67751766b
Test for non-canonical decl and vtables.
...
llvm-svn: 90541
2009-12-04 04:30:55 +00:00
Eli Friedman
94bc2dade6
Fix regression in vtable improvements.
...
llvm-svn: 90540
2009-12-04 04:30:03 +00:00
Mike Stump
8c1253b4c2
Try/catch statements seem to be working well enough to turn on.
...
llvm-svn: 90538
2009-12-04 03:57:07 +00:00
Mike Stump
2ab55765f7
Disable for now, doesn't play nice with the temporary code.
...
llvm-svn: 90537
2009-12-04 03:55:53 +00:00
Eli Friedman
b05eb963e0
Rename method to something easier to search for.
...
llvm-svn: 90536
2009-12-04 03:54:56 +00:00
Anders Carlsson
a93e980fbc
More work in preparation of getting rid of the submethods loop.
...
llvm-svn: 90535
2009-12-04 03:52:52 +00:00
Anders Carlsson
f2f31f4371
Remove an unused member variable.
...
llvm-svn: 90534
2009-12-04 03:46:21 +00:00
Anders Carlsson
e609636e0d
Add a way to get the index of a method. Assert that we have the same index for now.
...
llvm-svn: 90533
2009-12-04 03:41:37 +00:00
Anders Carlsson
b07567c315
Add a premature optimization.
...
llvm-svn: 90532
2009-12-04 03:07:26 +00:00
Anders Carlsson
50f147460a
Add the method directly to the vtable.
...
llvm-svn: 90531
2009-12-04 03:06:03 +00:00
Anders Carlsson
79bce40365
Get rid of the PureVirtualMethods map.
...
llvm-svn: 90530
2009-12-04 02:58:12 +00:00
Anders Carlsson
ddf42c8d80
Move handling of pure virtual methods to AppendMethods (and rename it to AppendMethodsToVtable).
...
llvm-svn: 90529
2009-12-04 02:56:03 +00:00
Anders Carlsson
5b3ea9bf1c
Move covariant thunk handling to AppendMethods too.
...
llvm-svn: 90528
2009-12-04 02:52:22 +00:00
Anders Carlsson
86809cd8ab
Move 'this' pointer adjustment thunks to AppendMethods.
...
llvm-svn: 90527
2009-12-04 02:43:50 +00:00
Eli Friedman
4b1942cb8b
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.
llvm-svn: 90526
2009-12-04 02:43:40 +00:00
Anders Carlsson
495634e5ac
Factor appending methods to a vtable out into a separate function.
...
llvm-svn: 90525
2009-12-04 02:39:04 +00:00
Anders Carlsson
4c837d258f
Get rid of the Thunks struct too.
...
llvm-svn: 90524
2009-12-04 02:26:15 +00:00
Anders Carlsson
c521f952d6
Remove the CovariantThunk struct.
...
llvm-svn: 90523
2009-12-04 02:22:02 +00:00
Anders Carlsson
597c776c41
Remove the GlobalDecl from the Thunk as well.
...
llvm-svn: 90522
2009-12-04 02:14:12 +00:00
Eli Friedman
f3da334da6
Fix for PR5447: teach Evaluate to deal with floating-point conditionals.
...
llvm-svn: 90521
2009-12-04 02:12:53 +00:00
Anders Carlsson
8c889abc1a
Remove the GlobalDecl from the CovariantThunk struct, we can just look it up in the Methods table now.
...
llvm-svn: 90519
2009-12-04 02:11:21 +00:00
Anders Carlsson
cdf1898086
Start populating the VtableMembers structure.
...
llvm-svn: 90517
2009-12-04 02:08:24 +00:00
Ted Kremenek
c7916f9ff2
Allow BlockInvocationContext to wrap either a BlockDecl* or a BlockDataRegion*, giving us choice in our degree of context-sensitivity.
...
llvm-svn: 90516
2009-12-04 02:03:51 +00:00
Anders Carlsson
a84b6e85f0
Add a data structure for efficient storing of vtable methods. Not used yet.
...
llvm-svn: 90515
2009-12-04 02:01:07 +00:00
Mike Stump
114ab9f695
Fixup reference binding for catch parameters.
...
Fixup throws and rethrows to use invoke as appropriate.
llvm-svn: 90513
2009-12-04 01:51:45 +00:00
Eli Friedman
6d11ec8cb8
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.
llvm-svn: 90510
2009-12-04 01:30:56 +00:00
Ted Kremenek
43d4a899c4
Refactor LocationContext creation logic into a single member template.
...
llvm-svn: 90509
2009-12-04 01:28:56 +00:00
Ted Kremenek
253882431e
Refactor FoldingSet profiling code for LocationContexts, and add a new BlockInvocationContext to represent the invocation of a block.
...
llvm-svn: 90506
2009-12-04 00:50:10 +00:00
Eli Friedman
5efba264cb
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.
llvm-svn: 90504
2009-12-04 00:30:06 +00:00
Ted Kremenek
721fcc007e
constify MemRegion* returned by MemRegionManager::getXXXRegion() methods.
...
llvm-svn: 90503
2009-12-04 00:26:31 +00:00
John McCall
9f545181f7
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.
llvm-svn: 90500
2009-12-04 00:07:04 +00:00
Ted Kremenek
0ecd4c7d70
More template-logic for MemRegion construction out of MemRegion.h and into MemRegion.cpp.
...
llvm-svn: 90499
2009-12-04 00:05:57 +00:00
Mike Stump
5f141b75f9
These are done.
...
llvm-svn: 90494
2009-12-03 22:55:42 +00:00
Mike Stump
7398ff0f07
Improve catch parameter bindings for scalar non-pointers. WIP.
...
llvm-svn: 90492
2009-12-03 22:38:15 +00:00
John McCall
064d77b7c2
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.
llvm-svn: 90491
2009-12-03 22:31:13 +00:00
Eli Friedman
1d6fb1669c
Add recursion guards to ice-checking and evaluation for declrefs, so we
...
don't infinitely recurse for cases we can't evaluate.
llvm-svn: 90480
2009-12-03 20:31:57 +00:00
Ted Kremenek
a3536e23c8
Try to make the output of PlistDiagnostics more deterministic by sorting PathDiagnostics before they are emitted. Fixes <rdar://problem/7439668>.
...
llvm-svn: 90478
2009-12-03 19:35:02 +00:00
Ted Kremenek
4313a9c56a
Convert some methods in PathDiagnostic to return StringRefs instead of std::string&.
...
llvm-svn: 90477
2009-12-03 19:34:02 +00:00
Fariborz Jahanian
6dfc1978ac
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.
llvm-svn: 90470
2009-12-03 18:44:40 +00:00
Daniel Dunbar
e357d5689e
Fix Clang tool translation to forward -fvisibility as separate arguments, the
...
old syntax isn't supported.
llvm-svn: 90469
2009-12-03 18:42:11 +00:00
Daniel Dunbar
bdd9669310
Add utils/TestUtils, and sink pch-test.pl there.
...
Also, add a test for generator a C file with a very deep call stack.
llvm-svn: 90468
2009-12-03 18:40:58 +00:00
Douglas Gregor
c99f155365
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.
llvm-svn: 90467
2009-12-03 18:33:45 +00:00
Ted Kremenek
2a3dbb5749
Add another blocks test case illustrating how parameters passed-by-reference in block invocations are invalidated (just like function calls).
...
llvm-svn: 90466
2009-12-03 18:29:20 +00:00
Anders Carlsson
ae3c5cf76a
When instantiating a class, if a base specifier is not dependent we still need to copy its attributes down to the instantiated class.
...
llvm-svn: 90463
2009-12-03 17:49:57 +00:00
Ted Kremenek
4b349cc9c5
Tweak handling of BlockDataRegions in RegionStoreManager::RemoveDeadBindings(): only the VarRegions for variables marked with the '__block' annotation should have their lifetime extended by a BlockDataRegion.
...
llvm-svn: 90462
2009-12-03 17:48:05 +00:00
Anders Carlsson
ce2cd01647
Handle static_assert inside functions.
...
llvm-svn: 90461
2009-12-03 17:26:31 +00:00
Douglas Gregor
580cd4a23e
When we're building a CXXExprWithTemporaries, only include those
...
temporaries that are within our current evaluation context. That way,
nested evaluation contexts (e.g., within a sizeof() expression) won't
see temporaries from outer contexts. Also, make sure to push a new
evaluation context when instantiating the initializer of a variable;
this may be an unevaluated context or a potentially-evaluated context,
depending on whether it's an in-class initializer or not. Fixes PR5672.
llvm-svn: 90460
2009-12-03 17:10:37 +00:00
Douglas Gregor
5f49883488
Minor cleanup to the code-completion-point logic suggested by Chris.
...
llvm-svn: 90459
2009-12-03 17:05:59 +00:00