]>
granicus.if.org Git - clang/log
Richard Smith [Sun, 29 Apr 2012 07:31:09 +0000 (07:31 +0000)]
PR12688: ParseCXXClassMemberDeclaration's sometimes-null ThisDecl takes another
victim. Don't crash if we have a delay-parsed exception specification for a
class member which is invalid in a way which precludes building a FunctionDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155788
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 29 Apr 2012 06:32:34 +0000 (06:32 +0000)]
[class.copy]p23: Fix an assertion caused by incorrect argument numbering in a
diagnostic, add a test for this paragraph, and tighten up the diagnostic wording
a little.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155784
91177308 -0d34-0410-b5e6-
96231b3b80d8
Julien Lerouge [Sat, 28 Apr 2012 17:39:16 +0000 (17:39 +0000)]
Currently __builtin_annotation() only annotates an i32.
i32 __builtin_annotation(i32, string);
Applying it to i64 (e.g., long long) generates the following IR.
trunc i64 {{.*}} to i32
call i32 @llvm.annotation.i32
zext i32 {{.*}} to i64
The redundant truncation and extension make the result difficult to use.
This patch makes __builtin_annotation() generic.
type __builtin_annotation(type, string);
For the i64 example, it simplifies the generated IR to:
call i64 @llvm.annotation.i64
Patch by Xi Wang!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155764
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Apr 2012 16:24:20 +0000 (16:24 +0000)]
improve error recovery for extra ')'s after a if/switch/while condition. Before:
t.c:3:9: error: expected expression
if (x)) {
^
.. which isn't even true - a statement or expression is fine. After:
t.c:3:9: error: extraneous ')' after condition, expected a statement
if (x)) {
^
This is the second part of PR12595
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155762
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Apr 2012 16:12:17 +0000 (16:12 +0000)]
switch some uses of ExpectAndConsume(tok::semi to use ExpectAndConsumeSemi. This allows
us to improve this diagnostic (telling us to insert another ")":
t.c:2:19: error: expected ';' at end of declaration
int x = 4+(5-12));
^
;
to:
t.c:2:19: error: extraneous ')' before ';'
int x = 4+(5-12));
^
...telling us to remove the ")". This is PR12595. There are more uses of ExpectAndConsumeSemi
that could be switched over, but I don't hit them on a daily basis :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155759
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 28 Apr 2012 13:37:45 +0000 (13:37 +0000)]
isCXX98PODType: Avoid dispatch on the language standard when recursing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155758
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 28 Apr 2012 11:14:51 +0000 (11:14 +0000)]
C++11 weakens the requirement for types used with offsetof from POD to standard layout type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155757
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 28 Apr 2012 10:00:42 +0000 (10:00 +0000)]
Rename isPODType (using the C++98 rules) into isCXX98PODType and make isPODType decide which one to use based on LangOptions.
- -Wc++98-compat depends on the c++98 definition
- Now __is_pod returns the right thing in c++11 and c++98 mode
- All changes to the type traits test are validated against g++ 4.7
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155756
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 28 Apr 2012 10:00:33 +0000 (10:00 +0000)]
Revert "Use the C++11 definition of PODness for __is_pod in C++11 mode."
This is just papering over a major bug in isPODType, real fix coming up soon.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155755
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 28 Apr 2012 09:07:58 +0000 (09:07 +0000)]
Use the C++11 definition of PODness for __is_pod in C++11 mode.
Keep the old definition for C++98 so we don't break tr1::is_pod.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155754
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jordy Rose [Sat, 28 Apr 2012 01:58:08 +0000 (01:58 +0000)]
[analyzer] Remove references to idx::TranslationUnit. Index is dead, cross-TU inlining never panned out.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155751
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Fri, 27 Apr 2012 22:50:22 +0000 (22:50 +0000)]
Make the diagnostic for "unexpected ':' in nested name specifier" a bit easier on the eyes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155741
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 27 Apr 2012 22:48:54 +0000 (22:48 +0000)]
objective-c modern translator: Correctly translate
nonfragile ivar access code when ivar type is a
locally defined struct/union type. // rdar://
11323187
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155740
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 27 Apr 2012 22:30:01 +0000 (22:30 +0000)]
When @encode'ing a C++ class that has empty base classes, we can end
up with gaps when the class inherits from the same empty base class
more than once. Fixes <rdar://problem/
11324167 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155738
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 27 Apr 2012 22:14:13 +0000 (22:14 +0000)]
Bump up the MaxDepth in the BalancedDelimiterTracker.
The Avida Project (http://avida.devosoft.org) exceeds the 256 limit.
rdar://
11289131
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155737
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 27 Apr 2012 21:39:49 +0000 (21:39 +0000)]
modern objective-c translator: _OBJC_PROTOCOL_REFERENCE_*
symbols should be static. // rdar://
11337074
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155736
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 27 Apr 2012 19:51:11 +0000 (19:51 +0000)]
[driver] Don't try to set the deployment target when there is no bound
architecture; this was happening for tools such as lipo and dsymutil.
Also, if no -arch option has been specified, set the architecture based
on the TC default.
rdar://
11329656
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155730
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 27 Apr 2012 19:33:05 +0000 (19:33 +0000)]
PR12224 (sort of): Diagnose inheriting constructor declarations in C++11 mode.
We do not support IRGen for these, and get some parts of the semantic analysis
wrong.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155728
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Fri, 27 Apr 2012 18:26:49 +0000 (18:26 +0000)]
Imrpove the note text for when a non-type decl hides a tag type
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155723
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 27 Apr 2012 16:50:38 +0000 (16:50 +0000)]
Fix logic such that we only call getToolChain once. No functional change
intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155719
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 27 Apr 2012 16:48:16 +0000 (16:48 +0000)]
Remove redundant calls to BAA->getArchName(). No functional change
intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155718
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 27 Apr 2012 14:58:16 +0000 (14:58 +0000)]
Revert 155679; Not a typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155708
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Fri, 27 Apr 2012 07:24:20 +0000 (07:24 +0000)]
Use enum to set debug info size generated by Clang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155697
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 27 Apr 2012 04:54:28 +0000 (04:54 +0000)]
Use a deque instead of an ImmutableList in AnalysisConsumer to preserve the file order that functions are visited. Should fix the buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155693
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 27 Apr 2012 04:36:34 +0000 (04:36 +0000)]
test/Rewriter: Mark 4 tests as XFAIL:mingw32, due to predefined __declspec(a) issue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155692
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 27 Apr 2012 04:36:27 +0000 (04:36 +0000)]
test/Driver/fast-math.c: Mark this as XFAIL:cygming. They use gcc driver for as.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155691
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 27 Apr 2012 04:31:46 +0000 (04:31 +0000)]
Add test case for rdar://
11293995
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155690
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 27 Apr 2012 02:34:46 +0000 (02:34 +0000)]
Add a missing check in CodeGen of packed classes with vtables. <rdar://problem/
11324125 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155689
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 27 Apr 2012 00:40:44 +0000 (00:40 +0000)]
The release notes are no place for modesty.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155681
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 27 Apr 2012 00:38:33 +0000 (00:38 +0000)]
Change FunctionSummary.h's definition of SetOfDecls to be an ImmutableList instead
of a mutable SmallPtrSet. While iterating over LocalTUDecls, there were cases
where we could modify LocalTUDecls, which could result in invalidating an iterator
and an analyzer crash. Along the way, switch some uses of std::queue to std::dequeue,
which should be slightly more efficient.
Unfortunately, this is a difficult case to create a test case for.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155680
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 27 Apr 2012 00:35:50 +0000 (00:35 +0000)]
Typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155679
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Thu, 26 Apr 2012 23:36:17 +0000 (23:36 +0000)]
Add note to help explain why a tag such as 'struct' is needed to refer
to a given type, when the reason is that there is a non-type decl with
the same name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155677
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 26 Apr 2012 23:20:25 +0000 (23:20 +0000)]
modern objective-c transltion: Fixes a translation bug
of writing a __block variable being initialized with
a constructed object. // rdar://
11326988
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155673
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 26 Apr 2012 22:43:24 +0000 (22:43 +0000)]
Add a missing ExpressionEvaluationContext for template default arguments. Fixes PR12581.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155670
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Thu, 26 Apr 2012 21:43:56 +0000 (21:43 +0000)]
Remove svn:eol-style from the test I just added. Sorry :-/
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155667
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Thu, 26 Apr 2012 21:39:46 +0000 (21:39 +0000)]
Revert r154981, because it caused PR12674.
Add a test for PR12674.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155666
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 26 Apr 2012 21:34:02 +0000 (21:34 +0000)]
Test case for previosu patch.
// rdar://
11323676
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155664
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 26 Apr 2012 21:33:14 +0000 (21:33 +0000)]
objective-c IRGen. Fixes a getter synthesis bug
where getter type is super class of its property
type, resulting in an assert. // rdar://
11323676
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155663
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Thu, 26 Apr 2012 21:14:42 +0000 (21:14 +0000)]
Fix a bug with block layout when the block contains something
more aligned than the block header but also contains something
smaller than the block-header alignment but not exactly half
the difference between the large alignment and the header
alignment. Got that?
I'm really not sure what I was thinking with the buggy computation
here, but the fix is pretty obvious.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155662
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 26 Apr 2012 20:39:46 +0000 (20:39 +0000)]
Fix file name in comment.
Patch by Yang Chen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155658
91177308 -0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Thu, 26 Apr 2012 19:57:02 +0000 (19:57 +0000)]
MIPS: Add support for 64-bit MIPS targets: mips64 / mips64el.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155656
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 26 Apr 2012 18:34:14 +0000 (18:34 +0000)]
[PCH] In ASTReader::completeVisibleDeclsMap, after we loaded all visible decls, mark
the declaration context as not having external visible storage any more.
This should improve performance as we won't needlessly reload the visible decls multiple times
and seems to fix the i386 crash in rdar://
11327522 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155649
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Thu, 26 Apr 2012 18:10:01 +0000 (18:10 +0000)]
Fix a crash-on-invalid where the constant evaluator would try to
evaluate certain expressions involving invalidly-defined classes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155645
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 26 Apr 2012 16:53:12 +0000 (16:53 +0000)]
Remove the group from -fhonor_infinites/-fno_honor_infinites aliases. Aliases
with groups are unsupported.
rdar://
11324283
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155637
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Thu, 26 Apr 2012 12:08:09 +0000 (12:08 +0000)]
Define __ANDROID__ macro on -androideabi targets.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155632
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Thu, 26 Apr 2012 08:49:54 +0000 (08:49 +0000)]
Adds a tutorial on how to write RAV based ASTFrontendActions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155631
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Thu, 26 Apr 2012 08:46:12 +0000 (08:46 +0000)]
Reverted unintentional commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155629
91177308 -0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Thu, 26 Apr 2012 08:35:58 +0000 (08:35 +0000)]
MIPS: Add tests to check the debian multiarch stuff for mips and mipsel targets.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155628
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Thu, 26 Apr 2012 08:35:39 +0000 (08:35 +0000)]
Adds a small tutorial on how to write RAV based ASTFrontendActions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155627
91177308 -0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 26 Apr 2012 07:31:30 +0000 (07:31 +0000)]
Enable AVX/AVX2 for Sandy Bridge, Ivy Bridge, and Haswell CPUs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155624
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 26 Apr 2012 07:29:14 +0000 (07:29 +0000)]
Update checker build link, and remove stale links.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155622
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 26 Apr 2012 07:24:08 +0000 (07:24 +0000)]
PR12647: An alias template instantiation which occurs in a SFINAE context is
itself a SFINAE context.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155621
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 26 Apr 2012 05:08:26 +0000 (05:08 +0000)]
[analyzer] check lazy bindings in RegionStore first before looking for default values. Fixes <rdar://problem/
11269741 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155615
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 26 Apr 2012 04:32:23 +0000 (04:32 +0000)]
Teach RetainCountChecker that it doesn't quite understand pthread_setspecific and it should just give up when it sees it. Fixes <rdar://problem/
11282706 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155613
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 26 Apr 2012 03:16:45 +0000 (03:16 +0000)]
PR12660: Don't crash when initializing a const reference from a braced init list
which creates a temporary by calling a constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155608
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 26 Apr 2012 02:10:51 +0000 (02:10 +0000)]
Fix a long-standing bug where Clang had a different default from GCC on
Linux and other (non-Darwin) platforms and have it use -fmath-errno by
default (for better or worse).
Darwin has seen the light here and uses -fno-math-errno by default, this
patch preserves that.
If any maintainers for a non-Linux platform would also like to opt-in to
-fno-math-errno by default, I'm happy to add folks, but we're currently
getting buts and misleading comparisons with GCC due to this difference
in behavior on Linux at least.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155607
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 26 Apr 2012 01:51:03 +0000 (01:51 +0000)]
Two missing -Wc++98-compat warnings, for null pointers as non-type template
arguments, and 'this' in exception-specifications.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155606
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 26 Apr 2012 01:26:03 +0000 (01:26 +0000)]
Reject cases like
struct __attribute__((visibility("hidden"))) a;
struct __attribute__((visibility("default"))) b;
which gcc already rejects.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155603
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 25 Apr 2012 23:23:48 +0000 (23:23 +0000)]
If a type is non-literal by virtue of being incomplete produce notes
explaining that.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155598
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 25 Apr 2012 22:57:25 +0000 (22:57 +0000)]
RecursiveASTVisitor: When in 'shouldVisitTemplateInstantiations' mode, visit
all instantiations of a template when we visit the canonical declaration of the
primary template, rather than trying to match them up to the partial
specialization from which they are instantiated. This fixes a bug where we
failed to visit instantiations of partial specializations of member templates of
class templates, and naturally extends to allow us to visit instantiations where
we have instantiated only a declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155597
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 25 Apr 2012 22:51:41 +0000 (22:51 +0000)]
Typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155596
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 25 Apr 2012 20:48:00 +0000 (20:48 +0000)]
objective-c modern translator: more tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155585
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Wed, 25 Apr 2012 19:49:54 +0000 (19:49 +0000)]
Add an error message with fixit hint for changing '.' to '->'.
This is mainly for attempting to recover in cases where a class provides
a custom operator-> and a '.' was accidentally used instead of '->' when
accessing a member of the object returned by the current object's
operator->.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155580
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 25 Apr 2012 18:39:17 +0000 (18:39 +0000)]
When resolving default template arguments, it should be done in the declaration context
of the template what we are going to instantiate.
Fixes various crashes of rdar://
11242625 & http://llvm.org/PR11421.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155576
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 25 Apr 2012 18:28:49 +0000 (18:28 +0000)]
PR12625: Cope with classes which have incomplete base or member types:
Don't try to query whether an incomplete type has a trivial copy constructor
when determining whether a move constructor should be declared.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155575
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 25 Apr 2012 18:21:27 +0000 (18:21 +0000)]
Use a SmallMap for StoredDeclsMap, it's usually sparsely populated so we can avoid initializing memory for 64 buckets.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155571
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 25 Apr 2012 18:21:21 +0000 (18:21 +0000)]
Convert a std::map that usually has between 0 and 10 elements to SmallMap.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155570
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 25 Apr 2012 18:11:57 +0000 (18:11 +0000)]
improve a modern objc translator test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155569
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 25 Apr 2012 17:56:48 +0000 (17:56 +0000)]
modern objc rewriter: fixes a bug writing
a const qualified static c-function.
// rdar://
11314329
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155564
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 25 Apr 2012 14:20:13 +0000 (14:20 +0000)]
Adds documentation for how to use the tooling library.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155550
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 25 Apr 2012 13:57:00 +0000 (13:57 +0000)]
Adds a document describing the various tooling approaches and their pros and
cons.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155549
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Wed, 25 Apr 2012 09:28:10 +0000 (09:28 +0000)]
Make asan-ld test windows-safe.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155543
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 25 Apr 2012 09:25:41 +0000 (09:25 +0000)]
Fixes the header search logic for tools:
The driver needs to get the correct path to the executable to deduce
the header search path.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155542
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Wed, 25 Apr 2012 08:59:22 +0000 (08:59 +0000)]
Clang driver support for linking on Android.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155541
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Wed, 25 Apr 2012 08:35:56 +0000 (08:35 +0000)]
Fix default cpu for -march=armv5e.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155540
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2012 06:12:24 +0000 (06:12 +0000)]
OpenBSD: Remove incorrect -pthread preprocessor define _POSIX_THREADS and replace
with _REENTRANT. Also remove undef _POSIX_THREADS in phread.h.
Patch by Brad Smith!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155535
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2012 06:09:30 +0000 (06:09 +0000)]
don't use soname on OpenBSD, it doesn't support it. Patch by
Brad Smith!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155534
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 24 Apr 2012 23:43:40 +0000 (23:43 +0000)]
Expand #include_next in float.h from mingw to _msc_ver.
A test for this is checking if this compiles:
#include <float.h>
inline bool IsFinite(const double& number) {
return _finite(number) != 0;
}
That depends however on either mingw or msvc being installed, and
chapuni tells me there might be issues with float.h on mingw, so
no automated test is added.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155507
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 24 Apr 2012 23:06:26 +0000 (23:06 +0000)]
Add acos, asin, ceil, fabs, floor, fmax, fmin, round, and tan to the builtin
math library functions.
rdar://
11251464
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155502
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 24 Apr 2012 22:40:01 +0000 (22:40 +0000)]
Add atan, atan2, exp, and log to the builtin math library functions.
With -fno-math-errno (the default for Darwin) or -ffast-math these library
function can be marked readnone enabling more opportunities for CSE and other
optimizations.
rdar://
11251464
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155498
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 24 Apr 2012 21:45:50 +0000 (21:45 +0000)]
Alphabetize the builtin math library functions. No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155492
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 24 Apr 2012 21:27:01 +0000 (21:27 +0000)]
Let NULL and MSVC headers coexist better.
Fixes the two issues mentioned in PR12146.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155490
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 24 Apr 2012 20:39:49 +0000 (20:39 +0000)]
RecursiveASTVisitor: Visit instantiations of member templates of class
templates. In an implicit instantiation of a member class, any member
templates don't get instantiated, so the existing check which only visited
the instantiations of a defined template skipped these templates'
instantiations.
Since there is only a single declaration of a member template of a class
template specialization, just use that to determine whether to visit the
instantiations. This introduces a slight inconsistency in that we will
visit the instantiations of such templates whether or not they are
defined, but we never visit a declared-but-not-defined instantiation, so
this turns out to not matter.
Patch by Daniel Jasper!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155487
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 24 Apr 2012 19:38:45 +0000 (19:38 +0000)]
modern objc translator: Allow writing of multiple
declaration of __block variables on same lines
with initializers. // rdsr://
7547630
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155473
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 24 Apr 2012 18:16:20 +0000 (18:16 +0000)]
objc modern rewriter: allow translation of
multiple declaration of block variables
(with no initializer) on the same line.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155462
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 24 Apr 2012 16:45:27 +0000 (16:45 +0000)]
objc modern rewriter: minor refactoring.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155449
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 24 Apr 2012 15:42:03 +0000 (15:42 +0000)]
Add a FIXME for uncomplete comment
fix a typo
add punctuation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155443
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 24 Apr 2012 12:30:37 +0000 (12:30 +0000)]
Adding information about what intrinsics still need to be implemented for MSVC compatibility.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155441
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 24 Apr 2012 11:04:57 +0000 (11:04 +0000)]
Add a flag to the image info section indicating that the program is compiled for
a simulator.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155436
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Tue, 24 Apr 2012 09:05:31 +0000 (09:05 +0000)]
Only pass -mcpu, -march, -mfpu to linux-as on ARM.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155431
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 24 Apr 2012 06:57:01 +0000 (06:57 +0000)]
enable TBAA when -fthread-sanitizer is given, even with -O0 or -relaxed-aliasing
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155430
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 24 Apr 2012 05:59:48 +0000 (05:59 +0000)]
Fix a typo spotted by Matt.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155427
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 24 Apr 2012 05:48:42 +0000 (05:48 +0000)]
Don't try to delay parsing the exception specification for a data member of a
class; we would never actually parse it and attach it to the type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155426
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 24 Apr 2012 05:23:54 +0000 (05:23 +0000)]
Introduce an initial sketch of a MSVC compatible 'intrin.h' builtin
header, along with a stub test to make sure it compiles in the
appropriate modes.
Thanks to Aaron Ballman for working with me to figure out the initial
strategy here, and to Nico for reviewing and pestering me to actually
commit it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155425
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 24 Apr 2012 05:06:35 +0000 (05:06 +0000)]
PR12629: Cope with parenthesized function types when attaching a delayed
exception specification to a function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155424
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 24 Apr 2012 01:19:04 +0000 (01:19 +0000)]
clang/test/Rewriter/objc-modern-boxing.mm: Mark as XFAIL:mingw for now, due to predefined __declspec similar to r155278.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155417
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Mon, 23 Apr 2012 20:41:57 +0000 (20:41 +0000)]
Thread safety analysis: refactor test cases so that the style is
consistent.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155388
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 23 Apr 2012 20:30:52 +0000 (20:30 +0000)]
with -Wdeprecated, include a note to its deprecated declaration
location. // rdar://
10893232
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155385
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 23 Apr 2012 19:00:24 +0000 (19:00 +0000)]
Forward declarations should take a context. This helps the debugger
find forward declarations in the context that the actual definition
will occur.
rdar://
11291658
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155381
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Mon, 23 Apr 2012 18:39:55 +0000 (18:39 +0000)]
Thread safety analysis: support the use of pt_guarded_by attributes
on smart pointers. Also adds test case for previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155379
91177308 -0d34-0410-b5e6-
96231b3b80d8