JF Bastien [Tue, 2 Dec 2014 19:19:59 +0000 (19:19 +0000)]
Make le64 DescriptionString consistent with other targets.
Summary:
In particular, remove the defaults and reorder fields so it matches the result of DataLayout::getStringDescription().
Change by David Neto.
Reviewers: dschuff, sdt
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D6482
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223140
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 2 Dec 2014 18:42:51 +0000 (18:42 +0000)]
This patch fixes a crash involving use of predefined
expressions. It fixes crash when mangling name for block's helper
function used inside a constructor/destructor.
rdar://
19065361.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223136
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Tue, 2 Dec 2014 18:29:00 +0000 (18:29 +0000)]
Skip some unnecessary type checks.
Summary:
Skip some unnecessary type checks wrt DynTypedNodes.
Add DynTypedNode::getUnchecked() to skip the runtime check when the type
is known.
Speed up DynTypedNode::operator== by using isSame() instead of
isBaseOf().
Skip the type check in MatcherInterface<T>::matches(). All calls come
from DynTypedMatcher::matches(), which already did the type check.
This change speeds up our clang-tidy benchmark by ~4%.
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D6468
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223134
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 2 Dec 2014 16:04:58 +0000 (16:04 +0000)]
Fix invalid calling convention used for libcalls on ARM.
ARM ABI specifies that all the libcalls use soft FP ABI
(even hard FP binaries). These days clang emits _mulsc3 / _muldc3
calls with default (C) calling convention which would be translated
into AAPCS_VFP LLVM calling and thus the result of complex
multiplication will be bogus.
Introduce a way for a target to specify explicitly calling
convention for libcalls. Right now this is temporary correctness
fix. Ultimately, we'll end with intrinsic for complex
multiplication and all calling convention decisions for libcalls
will be put into backend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223123
91177308-0d34-0410-b5e6-
96231b3b80d8
Serge Pavlov [Tue, 2 Dec 2014 14:52:20 +0000 (14:52 +0000)]
Reverted r223114, it caused failure on on clang-native-arm-cortex-a9.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223120
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 2 Dec 2014 14:21:16 +0000 (14:21 +0000)]
clang-format: Escape '*' in generated flag documentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223118
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 2 Dec 2014 13:24:51 +0000 (13:24 +0000)]
clang-format: Add option to suppress operator alignment.
With alignment:
int aaaaaa = aa
+
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
*
cccccccccccccccccccccccccccccccc;
Without alignment:
int aaaaaa = aa
+
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
*
cccccccccccccccccccccccccccccccc;
This fixes llvm.org/PR21666.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223117
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Tue, 2 Dec 2014 12:58:24 +0000 (12:58 +0000)]
[NVPTX] Fix type error for some builtins in BuiltinsNVPTX.def
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223116
91177308-0d34-0410-b5e6-
96231b3b80d8
Serge Pavlov [Tue, 2 Dec 2014 11:06:09 +0000 (11:06 +0000)]
Emit warning if define or undef reserved identifier or keyword.
Summary:
This change implements warnings if macro name is identical to a keyword or
reserved identifier. The warnings are different depending on the "danger"
of the operation. Defining macro that replaces a keyword is on by default.
Other cases produce warning that is off by default but can be turned on
using option -Wreserved-id-macro.
This change fixes PR11488.
Reviewers: rnk
Reviewed By: rnk
Subscribers: rnk, cfe-commits
Differential Revision: http://reviews.llvm.org/D6194
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223114
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 2 Dec 2014 09:46:56 +0000 (09:46 +0000)]
Bob Wilson [Tue, 2 Dec 2014 05:17:21 +0000 (05:17 +0000)]
Re-apply "Revert r166370 and r166540 now that Xcode 4.6 has been available for a while."
This reverts commit r176892.
I had reverted this a while back to give Chromium more time to update, and
Nico says it should be OK now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223108
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 2 Dec 2014 03:55:16 +0000 (03:55 +0000)]
clang/test/Modules/malformed.cpp REQUIRES shell due to "cd".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223107
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 2 Dec 2014 03:08:38 +0000 (03:08 +0000)]
CMake: make the regexes used for setting HOST_LINK_VERSION more forgiving (PR21268)
If the output of 'ld -v' didn't match the regexes, CMake would previously error
with a message like:
CMake Error at tools/clang/CMakeLists.txt:269 (string):
string sub-command REGEX, mode REPLACE regex "[^0-9]*([0-9.]*).*" matched
an empty string.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223106
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 2 Dec 2014 02:13:09 +0000 (02:13 +0000)]
Try to fix the MSVC build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223105
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 2 Dec 2014 01:24:52 +0000 (01:24 +0000)]
Rely on fewer features of the 'env' command. Darwin only supports '-i'.
I'm explicitly setting LC_ALL=C somewhat for documentation, but
hopefully this also removes some host variation from the test results.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223102
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 2 Dec 2014 00:53:20 +0000 (00:53 +0000)]
Add a test that ensures the Clang driver behaves itself when the PATH
environment variable is changed to strange things out from under it.
Prior to r223099 in LLVM, these test cases would crash in various ways
(assert fails, stack exhaustion, etc.).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223100
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 2 Dec 2014 00:27:35 +0000 (00:27 +0000)]
Remove special case for aarch64 static vs. PIC code in iOS kernel code.
I added this check a while back but then made a note to myself that it
should be completely unnecessary since iOS always uses PIC code-gen for
aarch64. Since I could never come up with any reason why it would be
necessary, I'm just going to remove it and we'll see if anything breaks.
rdar://problem/
13627985
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223097
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 2 Dec 2014 00:08:08 +0000 (00:08 +0000)]
[modules] Track how 'header' directives were written in module map files,
rather than trying to extract this information from the FileEntry after the
fact.
This has a number of beneficial effects. For instance, diagnostic messages for
failed module builds give a path relative to the "module root" rather than an
absolute file path, and the contents of the module includes file is no longer
dependent on what files the including TU happened to inspect prior to
triggering the module build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223095
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikola Smiljanic [Mon, 1 Dec 2014 23:15:01 +0000 (23:15 +0000)]
Perform correct lookup when '__super' is used in class with dependent base.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223090
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Mon, 1 Dec 2014 23:06:47 +0000 (23:06 +0000)]
Make -fuse-ld=lld work properly on Windows.
Using lld on Windows requires calling link-lld.exe instead of
lld.exe. This patch puts this knowledge into clang so that when
using the GCC style clang driver, it can properly delegate to
lld.
Differential Revision: http://reviews.llvm.org/D6428
Reviewed by: Reid Kleckner, Rui Ueyama
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223086
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 1 Dec 2014 22:02:27 +0000 (22:02 +0000)]
Use nullptr to silence -Wsentinel when self-hosting on Windows
Richard rejected my Sema change to interpret an integer literal zero in
a varargs context as a null pointer, so -Wsentinel sees an integer
literal zero and fires off a warning. Only CodeGen currently knows that
it promotes integer literal zeroes in this context to pointer size on
Windows. I didn't want to teach -Wsentinel about that compatibility
hack. Therefore, I'm migrating to C++11 nullptr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223079
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 1 Dec 2014 18:59:10 +0000 (18:59 +0000)]
Add missing 'break's, found by inspection. No functionality change; the
fallthrough happened to do the right thing in both cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223064
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 1 Dec 2014 17:48:04 +0000 (17:48 +0000)]
Add a test for devirtualization of virtual operator calls.
There was no test coverage for this before: Modifiying
EmitCXXOperatorMemberCallee() to not call CanDevirtualizeMemberFunctionCall()
didn't make any test fail.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223056
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 1 Dec 2014 16:46:03 +0000 (16:46 +0000)]
Update R600 address space map to include generic
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223046
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Mon, 1 Dec 2014 14:46:14 +0000 (14:46 +0000)]
Make the function pointer a template argument instead of a runtime value.
Summary:
Speed up the variadic matchers by removing one indirect call.
Making the function pointer a template arguments allows the compiler to
inline the call instead of doing an runtime call by pointer.
Also, optimize the allOf() case to avoid redundant kind checks.
This speeds up our clang-tidy benchmark by ~2%
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D6424
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223029
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Mon, 1 Dec 2014 11:32:38 +0000 (11:32 +0000)]
[OPENMP] Formating and code improvement for codegen of 'omp critical' directive.
No functional changes, only code improvements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223010
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnaud A. de Grandmaison [Mon, 1 Dec 2014 09:30:16 +0000 (09:30 +0000)]
Revert "Remove threshold for lifetime marker insertion of named temporaries"
Revert r222993 while I investigate some MemorySanitizer failures.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222995
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnaud A. de Grandmaison [Mon, 1 Dec 2014 09:13:54 +0000 (09:13 +0000)]
Remove threshold for lifetime marker insertion of named temporaries
Now that TailRecursionElimination has been fixed with r222354, the
threshold on size for lifetime marker insertion can be removed. This
only affects named temporary though, as the patch for unnamed temporaries
is still in progress.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222993
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sun, 30 Nov 2014 00:32:02 +0000 (00:32 +0000)]
clang/test/CodeGenOpenCL/opencl_types.cl: Appease i686-msvc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222969
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Sat, 29 Nov 2014 23:57:35 +0000 (23:57 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222964
91177308-0d34-0410-b5e6-
96231b3b80d8
Nathan Sidwell [Sat, 29 Nov 2014 22:51:47 +0000 (22:51 +0000)]
Fix grammar error in err_bad_reinterpret_cast_reference error message.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222963
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 29 Nov 2014 17:27:07 +0000 (17:27 +0000)]
Tweak clang/test/CodeGenOpenCL/opencl_types.cl to appease msvc since r222941.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222956
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 28 Nov 2014 22:22:46 +0000 (22:22 +0000)]
AST: Consider pseudo-struct builtin types as substitutable
We didn't consider types like ObjCSel as a substitution candidate.
This fixes PR21688.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222941
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Barton [Fri, 28 Nov 2014 20:39:59 +0000 (20:39 +0000)]
Add additional arguments for -mfpu options
Add neon-vfpv3 to allow specifying both at the same time. This is not an
option that GCC supports, but follows the same track and should be
non-controversial.
Change-Id: Id9ec157c835937d7d11ad0f49dbe5171fac17658
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222933
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Barton [Fri, 28 Nov 2014 20:39:54 +0000 (20:39 +0000)]
Add -mfpu=neon-vfpv4
This enables user to architecturally specify ARMv7A + VFPv4 + NEON.
Change-Id: I779b01fef5c47e5e4ac702ae24ed2f76a0e4c63f
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222932
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Fri, 28 Nov 2014 07:21:40 +0000 (07:21 +0000)]
[OPENMP] Additional processing of 'omp atomic write' directive.
According to OpenMP standard, Section 2.12.6, atomic Construct, '#pragma omp atomic write' is allowed to be used only for expression statements of form 'x = expr;', where x is a lvalue expression and expr is an expression with scalar type. Patch adds checks for it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222913
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Fri, 28 Nov 2014 00:53:20 +0000 (00:53 +0000)]
Create a new 'flag_enum' attribute.
This attribute serves as a hint to improve warnings about the ranges of
enumerators used as flag types. It currently has no working C++ implementation
due to different semantics for enums in C++. For more explanation, see the docs
and testcases.
Reviewed by Aaron Ballman.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222906
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Thu, 27 Nov 2014 21:02:49 +0000 (21:02 +0000)]
AArch64: simplify PCS mapping.
Now that LLVM can count the registers needed to implement AAPCS rules, we don't
need to duplicate that logic here. This means we can drop the explicit padding
and also use more natural types in many cases (e.g. "struct { float arr[3]; }"
used to end up as "[2 x double]" to avoid holes on the stack.
The one wrinkle is that AAPCS va_arg was also using the register counting
machinery. But the local replacement isn't too bad.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222904
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 27 Nov 2014 15:45:59 +0000 (15:45 +0000)]
Sphinx does not have a lexer for OpenCL, so falling back to C for the language on the code block. Also fixing an indentation warning. NFC to the content of the documentation itself.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222894
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 27 Nov 2014 15:37:42 +0000 (15:37 +0000)]
clang-format: [JS] Contract fewer functions to a single line.
Before:
var someVariable =
function(x) { return x.zIsTooLongForOneLineWithTheDeclarationLine(); };
After:
var someVariable = function(x) {
return x.zIsTooLongForOneLineWithTheDeclarationLine();
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222893
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 27 Nov 2014 15:24:48 +0000 (15:24 +0000)]
clang-format: [JS] Try not to break in container literals.
Before:
var obj = {
fooooooooo:
function(x) { return x.zIsTooLongForOneLineWithTheDeclarationLine(); }
};
After:
var obj = {
fooooooooo: function(x) {
return x.zIsTooLongForOneLineWithTheDeclarationLine();
}
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222892
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 27 Nov 2014 14:55:17 +0000 (14:55 +0000)]
clang-format: [JS] new and delete are valid function names.
Before:
someObject.new ();
someObject.delete ();
After:
someObject.new();
someObject.delete();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222890
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 27 Nov 2014 14:46:03 +0000 (14:46 +0000)]
clang-format: [JS] Make Closure module detection more narrow.
Before:
var MyLongClassName = goog.module.get('my.long.module.name.followedBy.MyLongClassName');
After:
var MyLongClassName =
goog.module.get('my.long.module.name.followedBy.MyLongClassName');
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222888
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 27 Nov 2014 14:40:48 +0000 (14:40 +0000)]
clang-format: Don't use column layout with AlignAfterOpenBrackets.
This fixes llvm.org/PR21676.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222886
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 27 Nov 2014 01:54:27 +0000 (01:54 +0000)]
[c++1z] Remove terse range-based for loops; they've been removed from
consideration for C++17 for now. Update C++ status page to match.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222865
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Thu, 27 Nov 2014 01:29:32 +0000 (01:29 +0000)]
When checking for uninitialized values, do not confuse "std::move" with every
other function named "move".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222863
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Wed, 26 Nov 2014 22:33:04 +0000 (22:33 +0000)]
OpenCL: fix test for lack of names in release builds
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222853
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Yartsev [Wed, 26 Nov 2014 21:53:39 +0000 (21:53 +0000)]
[analyzer] Indented code within the DisplayHelp sub.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222851
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 26 Nov 2014 19:37:39 +0000 (19:37 +0000)]
Fix buildbot failure on LLP64 platforms like MSVC x86_64.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222848
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Wed, 26 Nov 2014 18:03:42 +0000 (18:03 +0000)]
clang-format: [Java] Don't line-wrap package declarations.
This fixes llvm.org/PR21677.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222843
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 26 Nov 2014 16:43:18 +0000 (16:43 +0000)]
clang-format: Tweak -style=Chromium for Java files.
For Java, don't do any of the deviations from Google Style that Chromium style
does for C++.
Chromium's Java follows Android Java style [1], which is roughly Google Java
style with an indent of 4 and a continuation indent of 8.
1: https://source.android.com/source/code-style.html
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222839
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Wed, 26 Nov 2014 16:17:20 +0000 (16:17 +0000)]
Adding an explicit triple to this test to get it to pass all build bots.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222837
91177308-0d34-0410-b5e6-
96231b3b80d8
Anastasia Stulova [Wed, 26 Nov 2014 15:36:41 +0000 (15:36 +0000)]
[OpenCL] Implemented restrictions for pointer conversions specified in OpenCL v2.0.
OpenCL v2.0 s6.5.5 restricts conversion of pointers to different address spaces:
- the named address spaces (__global, __local, and __private) => __generic - implicitly converted;
- __generic => named - with an explicit cast;
- named <=> named - disallowed;
- __constant <=> any other - disallowed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222834
91177308-0d34-0410-b5e6-
96231b3b80d8
Anastasia Stulova [Wed, 26 Nov 2014 14:14:05 +0000 (14:14 +0000)]
[OpenCL] Generic address space parsing and diagnostics test (forgotten previously)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222832
91177308-0d34-0410-b5e6-
96231b3b80d8
Anastasia Stulova [Wed, 26 Nov 2014 14:10:06 +0000 (14:10 +0000)]
[OpenCL] Generic address space has been added in OpenCL v2.0.
To support it in the frontend, the following has been added:
- generic address space type attribute;
- documentation for the OpenCL address space attributes;
- parsing of __generic(generic) keyword;
- test code for the parser and diagnostics.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222831
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Wed, 26 Nov 2014 12:31:19 +0000 (12:31 +0000)]
clang-format: [Java] Improve formatting of throws declarations.
Before:
public void doSoooooooooo() throws LoooooooooongException,
LooooooooooongException {}
After:
public void doSoooooooooo()
throws LoooooooooongException, LooooooooooongException {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222829
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Wed, 26 Nov 2014 12:23:10 +0000 (12:23 +0000)]
clang-format: [Java] Improve cast detection.
Before:
a[b >> 1] = (byte)(c() << 4);
After:
a[b >> 1] = (byte) (c() << 4);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222827
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Wed, 26 Nov 2014 11:20:43 +0000 (11:20 +0000)]
clang-format: [Java] Fix breaking after annotations.
Before:
@Annotation1 // comment
@Annotation2 class C {}
After:
@Annotation1 // comment
@Annotation2
class C {}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222825
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Wed, 26 Nov 2014 10:43:58 +0000 (10:43 +0000)]
clang-format: Add SFS_Empty to only empty functions on a single line.
Activated for and tested by Google's Java style.
This fixes llvm.org/PR21667.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222819
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Wed, 26 Nov 2014 08:17:08 +0000 (08:17 +0000)]
clang-format: [Java] Support Foo.class;
Before:
SomeClass.
class.getName();
After:
SomeClass.class.getName();
This fixes llvm.org/PR21665.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222813
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 26 Nov 2014 03:26:53 +0000 (03:26 +0000)]
[c++1z] Most of N4268 (allow constant evaluation for non-type template arguments).
We don't yet support pointer-to-member template arguments that have undergone
pointer-to-member conversions, mostly because we don't have a mangling for them yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222807
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 25 Nov 2014 23:44:32 +0000 (23:44 +0000)]
CodeGen: Fix emission of __atomic_compare_exchange
We (wrongly) discarded the return value of the call.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222798
91177308-0d34-0410-b5e6-
96231b3b80d8
Kaelyn Takata [Tue, 25 Nov 2014 23:04:09 +0000 (23:04 +0000)]
Ensure that any TypoExprs in the arguments to bultins with custom type
checking are handled before the custom type checking is performed.
Fixes PR21669.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222797
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Tue, 25 Nov 2014 17:28:54 +0000 (17:28 +0000)]
Try to fix a ppc64 bot. What is this 'signext' stuff anyway?
No wonder most people use specific triples.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222769
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Tue, 25 Nov 2014 17:01:06 +0000 (17:01 +0000)]
Re-apply r222646 (was reverted in r222667). Adding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName
Change to original: ifndef out tests in Windows due to /-separated
paths.
Summary:
Often one is only interested in matches within the main-file or matches
that are not within a system-header, for which this patch adds
isInMainFile and isInSystemFile. They take no arguments and narrow down
the matches.
The isInFileMatchingName is mainly thought for interactive
clang-query-sessions, to make a matcher more specific without restarting
the session with the files you are interested in for that moment. It
takes a string that will be used as regular-expression to match the
filename of where the matched node is expanded.
Patch by Hendrik von Prince.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222765
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 25 Nov 2014 10:10:37 +0000 (10:10 +0000)]
Update Clang tests that run the LLVM optimizer to reflect the changed
canonicalization in r222748. No interesting functionality changed here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222749
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 25 Nov 2014 10:05:17 +0000 (10:05 +0000)]
clang-format: Refactoring.
Re-apply r222638 and r222641 without variadic templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222747
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 25 Nov 2014 09:45:48 +0000 (09:45 +0000)]
Add flag -f(no-)modules-implicit-maps.
This suppresses the implicit search for files called 'module.modulemap' and
similar.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222745
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 25 Nov 2014 08:59:34 +0000 (08:59 +0000)]
Add a missing override, caught by clang's inconsistent override warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222742
91177308-0d34-0410-b5e6-
96231b3b80d8
Sergey Dmitrouk [Tue, 25 Nov 2014 08:57:36 +0000 (08:57 +0000)]
[ARM] Define __ARM_FEATURE_DSP macro for CPUs that have DSP instructions
Summary:
This resolves [[ http://llvm.org/bugs/show_bug.cgi?id=17391 | PR17391 ]].
GCC's sources were used as a guide (couldn't find much information in ARM documentation).
Reviewers: doug.gregor, asl
Reviewed By: asl
Subscribers: asl, aemerson, cfe-commits
Differential Revision: http://reviews.llvm.org/D6339
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222741
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 25 Nov 2014 07:20:20 +0000 (07:20 +0000)]
MS ABI: Add CodeGen support for rethrowing MS C++ exceptions
Rethrowing exceptions in the MS model is very simple: just call
_CxxThrowException with nullptr for both arguments.
N.B. They chose stdcall as the calling convention for x86 but cdecl for
all other platforms.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222733
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 25 Nov 2014 06:59:35 +0000 (06:59 +0000)]
docs: Update the MSVCCompatibility doc for changes to debug info
The document should reflect that we now support emission for DWARF.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222731
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Tue, 25 Nov 2014 03:49:50 +0000 (03:49 +0000)]
CodeGen: further simplify assertion
Use more of algorithm to simplify the assertion. Pointed out by David Blakie!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222721
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Mon, 24 Nov 2014 23:30:12 +0000 (23:30 +0000)]
See if this fixes Mips bot; ignore contents of parameter lists.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222708
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 24 Nov 2014 22:05:42 +0000 (22:05 +0000)]
Remove unnecessary environment switch
All supported environments on x86 Windows return structs in EAX:EDX.
This removes code added in r204978 that had to get updated in r222680.
We should now have the same behavior we had before r204978.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222697
91177308-0d34-0410-b5e6-
96231b3b80d8
Kaelyn Takata [Mon, 24 Nov 2014 21:46:59 +0000 (21:46 +0000)]
Force the correction of delayed typos in casts in non-C++ code.
Fixes PR21656, which is fallout from r222551 caused by an untested/missed
code path.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222694
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Mon, 24 Nov 2014 21:21:09 +0000 (21:21 +0000)]
Filter the toplevel matchers by kind.
Summary:
Filter the toplevel matchers by kind.
Decl and Stmt matchers are tied to a specific node kind and trying to
match incompatible nodes is a waste.
Precalculate a filtered list of matchers that have a chance of matching
the node and ignore the rest.
Speeds up our clang-tidy benchmark by ~10%
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D6361
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222688
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Mon, 24 Nov 2014 21:03:34 +0000 (21:03 +0000)]
testing: make test use FileCheck
The "grep internal | count" was fragile when your source or remote paths could
contain the word "internal".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222685
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Mon, 24 Nov 2014 20:51:42 +0000 (20:51 +0000)]
Correctly remove OptimizeForSize from functions marked OptimizeNone.
This allows using __attribute__((optnone)) and the -Os/-Oz options.
Fixes PR21604.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222683
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Mon, 24 Nov 2014 20:14:29 +0000 (20:14 +0000)]
CodeGen: make i686-windows-itanium more similar to msvc
The itanium environment follows the system calling convention for structures.
Pass small aggregates via registers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222680
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Mon, 24 Nov 2014 20:14:26 +0000 (20:14 +0000)]
CodeGen: use a range-based for loop
Convert a debug assertion into a range-based loop form. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222679
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 24 Nov 2014 17:39:44 +0000 (17:39 +0000)]
Reverting r222646; the tests do not pass on Windows. Also reverts r222664, which was required for r222646 to compile with Visual Studio 2012.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222667
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Rieck [Mon, 24 Nov 2014 17:29:52 +0000 (17:29 +0000)]
Fix line endings
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222666
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Rieck [Mon, 24 Nov 2014 17:29:35 +0000 (17:29 +0000)]
Fix crash when using __if_exists in C mode
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222665
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 24 Nov 2014 17:22:32 +0000 (17:22 +0000)]
Unbreaking the MSVC 2012 build; however, these tests still fail on Windows.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222664
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 24 Nov 2014 15:42:34 +0000 (15:42 +0000)]
Reverting r222638; it broke the MSVC build bots because Visual Studio 2012 does not support variadic templates. Also reverting r222641 because it was relying on 222638.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222656
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Mon, 24 Nov 2014 09:10:56 +0000 (09:10 +0000)]
Adding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName
Summary:
Often one is only interested in matches within the main-file or matches
that are not within a system-header, for which this patch adds
isInMainFile and isInSystemFile. They take no arguments and narrow down
the matches.
The isInFileMatchingName is mainly thought for interactive
clang-query-sessions, to make a matcher more specific without restarting
the session with the files you are interested in for that moment. It
takes a string that will be used as regular-expression to match the
filename of where the matched node is expanded.
Patch by Hendrik von Prince.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222646
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 23 Nov 2014 21:45:03 +0000 (21:45 +0000)]
clang-format: Make short case labels work with #ifs
Before:
switch (a) {
#if FOO
case 0: return 0; #endif
}
After:
switch (a) {
#if FOO
case 0: return 0;
#endif
}
This fixed llvm.org/PR21544.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222642
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 23 Nov 2014 21:34:25 +0000 (21:34 +0000)]
clang-format: [Java] Treat 'instanceof' like other binary operators.
This fixes llvm.org/PR21436.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222641
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 23 Nov 2014 20:54:37 +0000 (20:54 +0000)]
clang-format: [Java] Space before array initializers.
Before:
new int[]{1, 2, 3, 4};
After:
new int[] {1, 2, 3, 4};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222640
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 23 Nov 2014 19:15:35 +0000 (19:15 +0000)]
clang-format: Improve ObjC blocks with return type.
Before:
Block b = ^int * (A * a, B * b) {}
After:
Block b = ^int *(A *a, B *b) {}
This fixed llvm.org/PR21619.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222639
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 23 Nov 2014 19:03:25 +0000 (19:03 +0000)]
clang-format: Refactoring.
Provide more overloads to simplify testing the type of a token. No
functional changes intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222638
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 23 Nov 2014 16:46:28 +0000 (16:46 +0000)]
clang-format: [JS] Support Closure's module statements.
These are like import statements and should not be line-wrapped. Minor
restructuring of the handling of other import statements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222637
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sun, 23 Nov 2014 02:16:24 +0000 (02:16 +0000)]
CodeGen: tweak struct ABI handling
Cygwin and MinGW fail to conform to the underlying system's structure passing
ABI. Make the check more precise to ensure that we correctly generate code for
the itanium environment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222626
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Sat, 22 Nov 2014 16:21:18 +0000 (16:21 +0000)]
Support matching signext attribute in the parallel_num_threads_codegen test to appease clang-cmake-mips builder.
The Mips target adds the signext attribute to signed 32-bit integers in order
to support the N32/N64 correctly. Integers must be promoted to 64-bit bit on
these ABI's.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222618
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Sat, 22 Nov 2014 16:08:56 +0000 (16:08 +0000)]
Support matching signext attribute in vla-lambda-capturing test to appease clang-cmake-mips builder.
The Mips target adds the signext attribute to signed 32-bit integers in order
to support the N32/N64 correctly. Integers must be promoted to 64-bit bit on
these ABI's.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222617
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sat, 22 Nov 2014 10:44:12 +0000 (10:44 +0000)]
CodeGen: Make atomic operations play nice with address spaces
We were being a little sloppy with our pointer/address space casts.
This fixes PR21643.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222615
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sat, 22 Nov 2014 06:20:38 +0000 (06:20 +0000)]
Simplify MicrosoftMangleContextImpl::shouldMangleStringLiteral
No functionality changed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222610
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sat, 22 Nov 2014 03:09:05 +0000 (03:09 +0000)]
Delay checking overrides for exception specifications if the overridden
specification has not yet been parsed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222603
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 21 Nov 2014 23:56:50 +0000 (23:56 +0000)]
MS ABI: Mangle u8 string literals
UTF8 string literals are mangled just like ASCII string literals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222591
91177308-0d34-0410-b5e6-
96231b3b80d8