Chris Lattner
1c4280328d
reapply my patch for PR4451, which improves diagnostics for :: vs : confusion.
...
This time with a fix to bail out when in a dependent context.
llvm-svn: 90730
2009-12-07 01:36:53 +00:00
Chris Lattner
045cbffb65
fix a crash on invalid I found when working on something unrelated.
...
llvm-svn: 90729
2009-12-07 00:48:47 +00:00
Rafael Espindola
662908cdcf
Fix typos. Thanks to John Tytgat for noticing it!
...
llvm-svn: 90728
2009-12-07 00:27:35 +00:00
Eli Friedman
d0e8de2cd8
Move RequireCompleteType requirement for fields early into ActOnField so that
...
subsequent code which depends on a complete type does the right thing.
llvm-svn: 90727
2009-12-07 00:22:08 +00:00
Sam Weinig
75b6f62d68
Remove a now out of date and out of place comment about predefined exprs from the FloatingLiteral class declaration.
...
llvm-svn: 90726
2009-12-06 23:57:56 +00:00
Sam Weinig
d060ed4d70
Don't print a void return type for C++ constructors and destructors when generating a predefined expr for them.
...
llvm-svn: 90725
2009-12-06 23:55:13 +00:00
Anton Korobeynikov
75dfed4fa5
Dynamic stack realignment use of sp register as source/dest register
...
in "bic sp, sp, #15" leads to unpredicatble behaviour in Thumb2 mode.
Emit the following code instead:
mov r4, sp
bic r4, r4, #15
mov sp, r4
llvm-svn: 90724
2009-12-06 22:39:50 +00:00
Eli Friedman
f2eda5efd2
Be a bit more complete about accumulating SavedThisAdjustments.
...
llvm-svn: 90723
2009-12-06 22:33:51 +00:00
Eli Friedman
8174f2c23c
Work-in-progess rewrite of thunks: move thunk generation outside of vtable
...
generation, and make sure we generate thunks when the function is defined
rather than when the vtable is defined.
llvm-svn: 90722
2009-12-06 22:01:30 +00:00
Douglas Gregor
94bb5e8d75
PointerUnion == PointerUnion does not do what I thought it did. Also, fix a thinko in a PointerUnion::get call.
...
llvm-svn: 90719
2009-12-06 21:27:58 +00:00
Steve Naroff
30484700c5
Integrate the following from the 'objective-rewrite' branch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=81871
http://llvm.org/viewvc/llvm-project?view=rev&revision=81936
http://llvm.org/viewvc/llvm-project?view=rev&revision=81945
llvm-svn: 90718
2009-12-06 21:14:13 +00:00
Chris Lattner
ed085234dc
revert my previous patch, it is breaking something and I don't have time
...
to fix it ATM.
llvm-svn: 90717
2009-12-06 20:58:07 +00:00
Eli Friedman
71a26d8f82
Move helper onto CXXMethodDecl.
...
llvm-svn: 90716
2009-12-06 20:50:05 +00:00
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
Chris Lattner
6d6f10fe91
fix PR5698
...
llvm-svn: 90708
2009-12-06 17:17:23 +00:00
Chris Lattner
7a141b3d88
remove extraneous comma clang warns about
...
llvm-svn: 90707
2009-12-06 16:58:41 +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
Chris Lattner
778cb92235
constant fold loads from memcpy's from global constants. This is important
...
because clang lowers nontrivial automatic struct/array inits to memcpy from
a global array.
llvm-svn: 90698
2009-12-06 05:29:56 +00:00
Chris Lattner
93236ba327
add support for forwarding mem intrinsic values to non-local loads.
...
llvm-svn: 90697
2009-12-06 04:54:31 +00:00
Chris Lattner
850a3cd905
gvn is optimizing this better now.
...
llvm-svn: 90696
2009-12-06 04:16:05 +00:00
Chris Lattner
42376066eb
Handle forwarding local memsets to loads. For example, we optimize this:
...
short x(short *A) {
memset(A, 1, sizeof(*A)*100);
return A[42];
}
to 'return 257' instead of doing the load.
llvm-svn: 90695
2009-12-06 01:57:02 +00:00
Chris Lattner
d15e11ad98
Add helper methods for forming shift operations with a constant
...
shift amount.
llvm-svn: 90694
2009-12-06 01:56:22 +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
Chris Lattner
eb5bb1bf78
merge two tests.
...
llvm-svn: 90691
2009-12-06 01:47:24 +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
Oscar Fuentes
58eea20f47
CheckAtomic.cmake: Put all C++ code inside CHECK_CXX_SOURCE_COMPILES.
...
llvm-svn: 90685
2009-12-06 00:06:33 +00:00
Anders Carlsson
7e28c5f2e2
Make GenerateVtable a private member function of CGVtableInfo.
...
llvm-svn: 90684
2009-12-06 00:01:05 +00:00
Oscar Fuentes
4f6d1eb3e0
Fix for atomic intrinsics detection when using MSVC.
...
Patch by Michael Beck!
llvm-svn: 90683
2009-12-05 23:19:33 +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