Douglas Gregor
923d2252dc
"The attached patch allows clang to find the headers
...
for Visual Studio 2010. It also adds a registry search
for the Express edition,", from Steven Watanabe!
llvm-svn: 104015
2010-05-18 05:47:04 +00:00
Douglas Gregor
b92ea59481
I hate this commit.
...
Revert much of the implementation of C++98/03 [temp.friend]p5 in
r103943 and its follow-ons r103948 and r103952. While our
implementation was technically correct, other compilers don't seem to
implement this paragraph (which forces the instantiation of friend
functions defined in a class template when a class template
specialization is instantiated), and doing so broke a bunch of Boost
libraries.
Since this behavior has changed in C++0x (which instantiates the
friend function definitions when they are used), we're going to skip
the nowhere-implemented C++98/03 semantics and go straight to the
C++0x semantics.
This commit is a band-aid to get Boost up and running again. It
doesn't really fix PR6952 (which this commit un-fixes), but it does
deal with the way Boost.Units abuses this particular paragraph.
llvm-svn: 104014
2010-05-18 05:45:02 +00:00
Anders Carlsson
061ca524b7
Keep track of the LLVM field numbers for non-virtual bases.
...
llvm-svn: 104013
2010-05-18 05:22:06 +00:00
Anders Carlsson
af9e5afe54
Start laying out bases as individual fields. We still use ugly i8 arrays but this is a step in the right direction.
...
llvm-svn: 104012
2010-05-18 05:12:20 +00:00
Anders Carlsson
864d1b555e
Add CodeGenTypes::ContainsPointerToDataMember overload that takes a CXXRecordDecl.
...
llvm-svn: 104011
2010-05-18 03:47:15 +00:00
John McCall
d3dfbd6f4f
If a switch condition is constant, don't warn about missing enum cases.
...
If a switch condition is constant, warn if there's no case for it.
Constant switch conditions do come up in reasonable template code.
llvm-svn: 104010
2010-05-18 03:19:21 +00:00
Howard Hinnant
34c3b52a2c
Better cauchy tests
...
llvm-svn: 104008
2010-05-18 00:34:49 +00:00
Zhongxing Xu
b013b0bc04
Add option '-analyzer-max-loop', which specifies the maximum
...
number of times the analyzer will go through a loop.
llvm-svn: 104007
2010-05-18 00:28:37 +00:00
Howard Hinnant
0dd05fb167
more :: to _
...
llvm-svn: 104006
2010-05-18 00:09:37 +00:00
Howard Hinnant
e4c7a35e1c
more :: to _
...
llvm-svn: 104005
2010-05-18 00:06:09 +00:00
Evan Cheng
48f0de96d6
FIX PR7158. SimplifyVBinOp was asserting when it fails to constant fold (op (build_vector), (build_vector)).
...
llvm-svn: 104004
2010-05-18 00:03:40 +00:00
John McCall
a9e6e8d654
Teach the ObjC mangler to ignore member pointers just like gcc does.
...
llvm-svn: 104001
2010-05-17 23:56:34 +00:00
Chandler Carruth
3b43338870
Add a hack to silence warnings about failing to return from functions after
...
a temporary with a noreturn destructor has been created. Fixes PR6884 for now.
llvm-svn: 104000
2010-05-17 23:51:52 +00:00
Douglas Gregor
96cdb1590e
Instantiate attributes on typedefs. This is a quick fix for PR7148,
...
when we really need a proper audit of our handling of attributes in
templates.
llvm-svn: 103999
2010-05-17 23:46:49 +00:00
Jakob Stoklund Olesen
93d8844699
ARMBaseRegisterInfo::estimateRSStackSizeLimit() could return prematurely with a
...
too large limit.
The function would return immediately when finding an addrmode 3/5 instruction.
It needs to keep scanning in case there is an addrmode 6 instruction which drops
the limit to 0.
A test case is very difficult to produce because it will only fail when the
scavenger is used.
rdar://problem/7894847
llvm-svn: 103995
2010-05-17 23:29:23 +00:00
Evan Cheng
1e4f55200d
Fix PR7175. Insert copies of a REG_SEQUENCE source if it is used by other REG_SEQUENCE instructions.
...
llvm-svn: 103994
2010-05-17 23:24:12 +00:00
Nick Lewycky
47b92a2cc4
Add a 'Base' type to RecursiveASTVisitor to make recursing easier and document
...
how you're supposed to use it.
llvm-svn: 103993
2010-05-17 23:15:38 +00:00
Bill Wendling
02d3368831
- Set the "HasCalls" flag after instruction selection is finished.
...
- Change the logic DisableFramePointerElim() to check for the
-disable-non-leaf-fp-elim before -disable-fp-elim.
llvm-svn: 103990
2010-05-17 23:09:50 +00:00
Kevin Enderby
0510b48fd9
Added support in MC for Directional Local Labels.
...
llvm-svn: 103989
2010-05-17 23:08:19 +00:00
Ted Kremenek
990783e345
Clean up test case and remove XFAIL. This test can now distinguish between
...
cases where Clang can suggest and fix and suggest and not auto-fix (because of
current limitations).
llvm-svn: 103987
2010-05-17 23:03:33 +00:00
John McCall
1b84d1106e
Comments and assorted cleanups for the Objective C type AST.
...
llvm-svn: 103986
2010-05-17 23:00:45 +00:00
Eric Christopher
9635b3da6b
More data/parsing support for tls directives. Add a few more testcases
...
and cleanup comments as well.
llvm-svn: 103985
2010-05-17 22:53:55 +00:00
Evan Cheng
f2c9a96f3c
Fix PR7156. If the sources of a REG_SEQUENCE are all IMPLICIT_DEF's. Replace it with an IMPLICIT_DEF rather than deleting it or else it would be left without a def.
...
llvm-svn: 103984
2010-05-17 22:09:49 +00:00
Howard Hinnant
6692b261d8
[rand.dist.norm.cauchy]. I'm having trouble testing the output as all statistical properties are undefined. They do not converge upon any one value as the number of samples increases. Suggestions for tests welcome.
...
llvm-svn: 103983
2010-05-17 21:55:46 +00:00
Evan Cheng
cd04ed3533
vmov of immediates are trivially re-materializable.
...
llvm-svn: 103982
2010-05-17 21:54:50 +00:00
Daniel Dunbar
bb166bed40
MC/Mach-O/x86: Optimal nop sequences should only be used for the .text sections, not all sections in the text segment.
...
llvm-svn: 103981
2010-05-17 21:54:30 +00:00
Daniel Dunbar
ce5e1bb326
MC: Add dyn_cast support to MCSection.
...
- Of questionable utility, since in general anything which wants to do this should probably be within a target specific hook, which can rely on the sections being of the appropriate type. However, it can be useful for short term hacks.
llvm-svn: 103980
2010-05-17 21:54:26 +00:00
Daniel Dunbar
b7b796cc11
MC/Mach-O: Reverse order of SymbolData scanning when emitting instructions.
...
- This fixes a string table mismatch with 'as' when two new symbols are defined
in a single instruction.
llvm-svn: 103979
2010-05-17 21:19:59 +00:00
Jakob Stoklund Olesen
585792738b
Pull the UsedInInstr.test() calls into calcSpillCost() and remember aliases.
...
This fixes the miscompilations of MultiSource/Applications/JM/l{en,de}cod.
Clang now successfully self hosts in a debug build with the fast register allocator.
llvm-svn: 103975
2010-05-17 21:02:08 +00:00
Eric Christopher
bf79238599
Add some section and constant support for darwin TLS.
...
llvm-svn: 103974
2010-05-17 21:02:07 +00:00
John McCall
96fa4845f7
Clean up some more uses of getAs<ObjCInterfaceType>() that Fariborz pointed
...
out. The remaining ones are okay.
llvm-svn: 103973
2010-05-17 21:00:27 +00:00
Chandler Carruth
0450cc684c
Fix an ambiguous else warning from GCC by adding some much needed curlies.
...
llvm-svn: 103972
2010-05-17 20:58:49 +00:00
Evan Cheng
29c463862e
Careful with reg_sequence coalescing to not to overwrite sub-register indices.
...
llvm-svn: 103971
2010-05-17 20:57:12 +00:00
Howard Hinnant
eb6fa6af2b
Got rid of more :: path names
...
llvm-svn: 103970
2010-05-17 20:38:02 +00:00
Bob Wilson
c601801a7e
Fix a regression in 464.h264 for thumb1 and thumb2 nightly tests.
...
Obvious in retrospect but not fun to debug.
llvm-svn: 103969
2010-05-17 20:31:13 +00:00
Chris Lattner
467f6bcfe5
robustify the conflict marker stuff. Don't add 7 twice, which would
...
make it miss (invalid) things like:
<<<<<<<
>>>>>>>
and crash if
<<<<<<<
was at the end of the line. When we find a >>>>>>> that is not at the
end of the line, make sure to reset Pos so we don't crash on something
like:
<<<<<<< >>>>>>>
This isn't worth making testcases for, since each would require a new file.
rdar://7987078 - signal 11 compiling "<<<<<<<<<<"
llvm-svn: 103968
2010-05-17 20:27:25 +00:00
Ted Kremenek
0ed7549343
Fix missing '}'.
...
llvm-svn: 103966
2010-05-17 20:12:45 +00:00
John McCall
3e294929b8
Correctly generate IR for ObjC messages sends to protocol-qualified types.
...
Fixes rdar://problem/7992749
llvm-svn: 103965
2010-05-17 20:12:43 +00:00
Daniel Dunbar
0211a96989
MC/Mach-O: Fix some differences in symbol flag handling.
...
- Don't clear weak reference flag, 'as' was only "trying" to do this, it wasn't
actually succeeding.
- Clear the "lazy bound" bit when we mark something external. This corresponds
roughly to the lazy clearing of the bit that 'as' implements in
symbol_table_lookup.
- The exact meaning of these flags appears pretty loose, since 'as' isn't very
consistent. For now we just try to match 'as', we will clean this up one day
hopefully.
llvm-svn: 103964
2010-05-17 20:12:31 +00:00
Ted Kremenek
9cfe9e6a4a
Add libclang function 'clang_CXXMethod_isStatic' to query of a C++ method
...
is declared static.
llvm-svn: 103963
2010-05-17 20:06:56 +00:00
Jakob Stoklund Olesen
84a8415ed7
Optimize empty DenseMap iteration.
...
llvm-svn: 103962
2010-05-17 20:01:24 +00:00
Jakob Stoklund Olesen
70563bbba5
Remove debug option. Add comment on spill order determinism.
...
llvm-svn: 103961
2010-05-17 20:01:22 +00:00
Evan Cheng
3d98b996ff
Turn on -neon-reg-sequence by default.
...
Using NEON load / store multiple instructions will no longer create gobs of vmov of D registers!
llvm-svn: 103960
2010-05-17 19:51:20 +00:00
Douglas Gregor
c4c574bd2e
Test that mutability of class members that involve class definitions actually works
...
llvm-svn: 103959
2010-05-17 19:45:25 +00:00
Douglas Gregor
3b05bdba5a
Teach ASTContext::getUnqualifiedArrayType() how to look through
...
typedefs. As a drive-by, teach hit how to build VLA types, since those
will eventually be supported in C++.
llvm-svn: 103958
2010-05-17 18:45:21 +00:00
Howard Hinnant
fd5c3a34e3
[rand.dist.norm.lognormal]
...
llvm-svn: 103957
2010-05-17 18:31:53 +00:00
Douglas Gregor
c9a99c5e5c
mutable is a storage class that can follow a class/struct/union definition. Fixes PR7153
...
llvm-svn: 103954
2010-05-17 18:19:56 +00:00
Fariborz Jahanian
16f94c6e8f
Don't attempt to poke into an invalid field's class type
...
to mark its destructors as referenced which may cause
a crash. Fixes radar 7896920
llvm-svn: 103953
2010-05-17 18:15:18 +00:00
Douglas Gregor
fd7224fee0
Diagnose a redefinition error when there are two instantiations of friend
...
functions defined inside a class template. Fixes PR6952, the last
Boost.Units failure.
llvm-svn: 103952
2010-05-17 17:57:54 +00:00
Daniel Dunbar
9b4a824217
llvm-mc: Support reassignment of variables in one special case, when the
...
variable has not yet been used in an expression. This allows us to support a few
cases that show up in real code (mostly because gcc generates it for Objective-C
on Darwin), without giving up a reasonable semantic model for assignment.
llvm-svn: 103950
2010-05-17 17:46:23 +00:00