Aditya Kumar [Mon, 3 Oct 2016 02:36:33 +0000 (02:36 +0000)]
Keep the test only for Itanium abi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283085
91177308-0d34-0410-b5e6-
96231b3b80d8
Michal Gorny [Sun, 2 Oct 2016 19:28:57 +0000 (19:28 +0000)]
[cmake] Install 'clang-cpp' symlink
Install the 'clang-cpp' symlink used to spawn the preprocessor. The code
handling this suffix is already included in Driver. FreeBSD is already
creating such a symlink in ports, and a similar one was requested
by Gentoo/FreeBSD team. The goal is to handle software that takes a C
preprocessor via a variable but does not handle passing options
correctly (i.e. 'clang -E' does not work).
Bug: https://bugs.gentoo.org/478810
Differential Revision: https://reviews.llvm.org/D25161
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283075
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 2 Oct 2016 17:43:00 +0000 (17:43 +0000)]
[AVX-512] Use native IR for masked 512-bit add/sub/mul/div ps/pd intrinsics when rounding mode isn't used.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283073
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Sun, 2 Oct 2016 15:24:50 +0000 (15:24 +0000)]
[CUDA] Allow extern __shared__ on empty-length arrays.
"extern __shared__ int x[]" is OK.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283068
91177308-0d34-0410-b5e6-
96231b3b80d8
Gor Nishanov [Sun, 2 Oct 2016 03:31:58 +0000 (03:31 +0000)]
[coroutines] Rename driver flag -fcoroutines to -fcoroutines-ts
Summary:
Also makes -fcoroutines_ts to be both a Driver and CC1 flag.
Patch mostly by EricWF.
Reviewers: rnk, cfe-commits, rsmith, EricWF
Subscribers: mehdi_amini
Differential Revision: https://reviews.llvm.org/D25130
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283064
91177308-0d34-0410-b5e6-
96231b3b80d8
Aditya Kumar [Sun, 2 Oct 2016 03:06:36 +0000 (03:06 +0000)]
Alias must point to a definition
Reapplying the patch after modifying the test case.
Inlining the destructor caused the compiler to generate bad IR which failed the Verifier in the backend.
https://llvm.org/bugs/show_bug.cgi?id=30341
This patch disables alias to available_externally definitions.
Reviewers: eugenis, rsmith
Differential Revision: https://reviews.llvm.org/D24682
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283063
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Sun, 2 Oct 2016 02:10:45 +0000 (02:10 +0000)]
[PowerPC] Enable soft-float for PPC64, and +soft-float -> -hard-float
Enable soft-float support on PPC64, as the backend now supports it. Also, the
backend now uses -hard-float instead of +soft-float, so set the target features
accordingly.
Fixes PR26970.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283061
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 1 Oct 2016 21:03:50 +0000 (21:03 +0000)]
[AVX-512] Check rounding mode for builtins that take one. Rounding mode should be either _MM_FROUND_CUR_DIRECTION or a 2-bit rounding mode ORed with _MM_FROUND_NO_EXC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283054
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 1 Oct 2016 21:03:46 +0000 (21:03 +0000)]
[AVX-512] Add _MM_FROUND_NO_EXC to test cases that pass a rounding mode intrinsics. This is preparation for a follow up commit that will check validity of rounding mode argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283053
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Sat, 1 Oct 2016 16:38:28 +0000 (16:38 +0000)]
Use StringRef for MemoryBuffer identifier API (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283043
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Sat, 1 Oct 2016 15:44:54 +0000 (15:44 +0000)]
Use StringRef in Registry API (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283039
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Sat, 1 Oct 2016 02:56:57 +0000 (02:56 +0000)]
Use StringRef in Pass/PassManager APIs (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283004
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Sat, 1 Oct 2016 01:16:22 +0000 (01:16 +0000)]
Use StringRef in Triple API (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282996
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Sat, 1 Oct 2016 00:15:24 +0000 (00:15 +0000)]
Fix crash when emitting error.
With templated classes, is possible to not be able to determine is a member
function is a special member function before the class is instantiated. Only
these special member functions can be defaulted. In some cases, knowing
whether a function is a special member function can't be determined until
instantiation, so an uninstantiated function could possibly be defaulted too.
Add a case to the error diagnostic when the function marked with a default is
not known to be a special member function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282989
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 23:57:38 +0000 (23:57 +0000)]
[CUDA] Harmonize asserts in SemaCUDA, NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282987
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 23:57:34 +0000 (23:57 +0000)]
[CUDA] Disallow __constant__ local variables.
Reviewers: tra, rnk
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25129
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282986
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 23:57:30 +0000 (23:57 +0000)]
[CUDA] Disallow 'extern __shared__' variables.
Also add a test that we disallow
__constant__ __shared__ int x;
because it's possible to break this without breaking
__shared__ __constant__ int x;
Reviewers: rnk
Subscribers: cfe-commits, tra
Differential Revision: https://reviews.llvm.org/D25125
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282985
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 30 Sep 2016 23:16:08 +0000 (23:16 +0000)]
Fix bogus "inline namespace cannot be reopened as non-inline" diagnostic to
just warn that the second declaration is missing the 'inline' keyword. This is
valid, and we shouldn't be suggesting otherwise.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282981
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Fri, 30 Sep 2016 23:11:05 +0000 (23:11 +0000)]
CodeGen: inherit DLLExport attribute in Windows Itanium
When emitting the fundamental type information constants, inherit the
DLLExportAttr from `__fundamental_type_info`. We would previously not
honor the `__declspec(dllexport)` on the type information.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282980
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 30 Sep 2016 22:41:36 +0000 (22:41 +0000)]
P0035R4: add predefined __STDCPP_DEFAULT_NEW_ALIGNMENT__ macro. By default, we
assume that ::operator new provides no more alignment than is necessary for any
primitive type, except when we're on a GNU OS, where glibc's malloc guarantees
to provide 64-bit alignment on 32-bit systems and 128-bit alignment on 64-bit
systems. This can be controlled by the command-line -fnew-alignment flag.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282974
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Fiselier [Fri, 30 Sep 2016 22:38:31 +0000 (22:38 +0000)]
[coroutines] Diagnose when 'main' is declared as a coroutine.
Summary: The title says it all.
Reviewers: rsmith, GorNishanov
Subscribers: mehdi_amini, cfe-commits
Differential Revision: https://reviews.llvm.org/D25078
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282973
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Fri, 30 Sep 2016 22:19:38 +0000 (22:19 +0000)]
[Sema] Support lax conversions for compound assignments
Support lax convertions on compound assignment expressions like:
typedef __attribute__((vector_size(8))) double float64x1_t;
typedef __attribute__((vector_size(16))) double float64x2_t;
float64x1_t vget_low_f64(float64x2_t __p0);
double c = 3.0;
float64x2_t v = {0.0, 1.0};
c += vget_low_f64(v);
This restores one more valid behavior pre r266366, and is a incremental
follow up from work committed in r274646.
While here, make the check more strict, add FIXMEs, clean up variable
names to match what they can actually be and update testcases to reflect
that. We now reject:
typedef float float2 __attribute__ ((vector_size (8)));
double d;
f2 += d;
which doesn't fit as a direct bitcast anyway.
Differential Revision: https://reviews.llvm.org/D24472
rdar://problem/
28033929
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282968
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 30 Sep 2016 21:57:10 +0000 (21:57 +0000)]
[sanitizer-coverage] fix docs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282962
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Shaposhnikov [Fri, 30 Sep 2016 21:05:45 +0000 (21:05 +0000)]
Add missing std::move in Replacements::add
This diff adds std::move to avoid copying of
the Replacement NewR in the method Replacements::add.
Test plan: make -j8 check-all
Differential revision: https://reviews.llvm.org/D25049
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282949
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Aizatsky [Fri, 30 Sep 2016 21:02:56 +0000 (21:02 +0000)]
[sancov] -symbolize documentation update
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282948
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 20:17:37 +0000 (20:17 +0000)]
[CUDA] Fix implicit-device-lambda.cu after r282911.
This commit added a warning that we're (correctly) hitting in this test.
Just ignore it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282927
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 19:55:59 +0000 (19:55 +0000)]
[CUDA] Remove incorrect comment in CUDASetLambdaAttrs.
I'd said that nvcc doesn't allow you to add __host__ or __device__
attributes on lambdas in all circumstances, but I believe this was user
error on my part. I can't reproduce these warnings/errors if I pass
--expt-extended-lambda to nvcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282912
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 19:55:55 +0000 (19:55 +0000)]
[CUDA] Emit a warning if a CUDA host/device/global attribute is placed after '(...)'.
Summary:
This is probably the sane place for the attribute to go, but nvcc
specifically rejects it. Other GNU-style attributes are allowed in this
position (although judging from the warning it emits for
host/device/global, those attributes are applied to the lambda's
anonymous struct, not to the function itself).
It would be nice to have a FixIt message here, but doing so, or even
just getting the correct range for the attribute, including its '((' and
'))'s, is apparently Hard.
Reviewers: rnk
Subscribers: cfe-commits, tra
Differential Revision: https://reviews.llvm.org/D25115
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282911
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 19:55:48 +0000 (19:55 +0000)]
[CUDA] Fix up MaybeParseGNUAttributes call used for out-of-place attributes on CUDA lambdas.
Summary: There's an overload that we can use to make this a bit cleaner.
Reviewers: rnk
Subscribers: cfe-commits, tra
Differential Revision: https://reviews.llvm.org/D25114
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282910
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Fri, 30 Sep 2016 19:13:46 +0000 (19:13 +0000)]
[MS] Implement __iso_volatile loads/stores as builtins
These are supposed to produce the same as normal volatile
pointer loads/stores. When -volatile:ms is specified,
normal volatile pointers are forced to have atomic semantics
(as is the default on x86 in MSVC mode). In that case,
these builtins should still produce non-atomic volatile
loads/stores without acquire/release semantics, which
the new test verifies.
These are only available on ARM (and on AArch64,
although clang doesn't support AArch64/Windows yet).
This implements what is missing for PR30394, making it possible
to compile C++ for ARM in MSVC mode with MSVC headers.
Differential Revision: https://reviews.llvm.org/D24986
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282900
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 17:14:53 +0000 (17:14 +0000)]
[CUDA] Make lambdas inherit __host__ and __device__ attributes from the scope in which they're created.
Summary: NVCC compat. Fixes bug 30567.
Reviewers: tra
Subscribers: cfe-commits, rnk
Differential Revision: https://reviews.llvm.org/D25105
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282880
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 17:14:48 +0000 (17:14 +0000)]
[CUDA] Handle attributes on CUDA lambdas appearing between [...] and (...).
Summary: This is ugh, but it makes us compatible with NVCC. Fixes bug 26341.
Reviewers: rnk
Subscribers: cfe-commits, tra
Differential Revision: https://reviews.llvm.org/D25103
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282879
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 17:14:44 +0000 (17:14 +0000)]
[CUDA] Add missing comment on Sema::CheckCUDAVLA.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282878
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Antao [Fri, 30 Sep 2016 15:34:19 +0000 (15:34 +0000)]
[CUDA][OpenMP] Add a generic offload action builder
Summary:
This patch proposes a new class to generate and record action dependences related with offloading. The builder provides three main functionalities:
- Add device dependences to host actions.
- Add host dependence to device actions.
- Register device top-level actions.
The constructor of the builder detect the programming models that should be supported, and generates a specialized builder for each. If a new programming model is to be added in the future, only a new specialized builder has to be implemented.
When the specialized builder is generated, it produces programming-model-specific diagnostics.
A CUDA specialized builder is proposed in the patch that mostly consists of the partition of the current `buildCudaAction` by the three different functionalities.
Reviewers: tra, echristo, ABataev, jlebar, hfinkel
Subscribers: Hahnfeld, whchung, guansong, jlebar, mehdi_amini, andreybokhanko, tcramer, mkuron, cfe-commits, arpith-jacob, carlo.bertolli, caomhin
Differential Revision: https://reviews.llvm.org/D18172
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282865
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 30 Sep 2016 14:25:09 +0000 (14:25 +0000)]
Strip trailing whitespace (NFCI)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282858
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 30 Sep 2016 14:18:06 +0000 (14:18 +0000)]
Fix int <= bool comparison warning on MSVC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282857
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Leschuk [Fri, 30 Sep 2016 06:39:48 +0000 (06:39 +0000)]
Cosmetic fix: deleted unnecessary line break in comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282846
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 30 Sep 2016 00:38:45 +0000 (00:38 +0000)]
Move UTF functions into namespace llvm.
Summary:
This lets people link against LLVM and their own version of the UTF
library.
I determined this only affects llvm, clang, lld, and lldb by running
$ git grep -wl 'UTF[0-9]\+\|\bConvertUTF\bisLegalUTF\|getNumBytesFor' | cut -f 1 -d '/' | sort | uniq
clang
lld
lldb
llvm
Tested with
ninja lldb
ninja check-clang check-llvm check-lld
(ninja check-lldb doesn't complete for me with or without this patch.)
Reviewers: rnk
Subscribers: klimek, beanz, mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D24996
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282822
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 29 Sep 2016 22:49:46 +0000 (22:49 +0000)]
P0035R4: add std::align_val_t overloads of operator new/delete in C++17 mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282800
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Fiselier [Thu, 29 Sep 2016 21:47:39 +0000 (21:47 +0000)]
[Coroutines] Fix assertion about uncorrected typos in co_await/co_yield/co_return expressions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282792
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 29 Sep 2016 21:30:12 +0000 (21:30 +0000)]
Switch to a different workaround for unimplementability of P0145R3 in MS ABIs.
Instead of ignoring the evaluation order rule, ignore the "destroy parameters
in reverse construction order" rule for the small number of problematic cases.
This only causes incorrect behavior in the rare case where both parameters to
an overloaded operator <<, >>, ->*, &&, ||, or comma are of class type with
non-trivial destructor, and the program is depending on those parameters being
destroyed in reverse construction order.
We could do a little better here by reversing the order of parameter
destruction for those functions (and reversing the argument evaluation order
for all direct calls, not just those with operator syntax), but that is not a
complete solution to the problem, as the same situation can be reached by an
indirect function call.
Approach reviewed off-line by rnk.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282777
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Katzman [Thu, 29 Sep 2016 19:59:12 +0000 (19:59 +0000)]
[Myriad] Silently ignore -fno-split-dwarf-inlining
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282757
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 29 Sep 2016 19:06:09 +0000 (19:06 +0000)]
[sanitizer-coverage] a bit more docs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282752
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 29 Sep 2016 18:58:17 +0000 (18:58 +0000)]
[sanitizer-coverage] more docs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282751
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 29 Sep 2016 18:34:40 +0000 (18:34 +0000)]
[sanitize-coverage] doc typo
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282749
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 29 Sep 2016 17:43:24 +0000 (17:43 +0000)]
[sanitizer-coverage/libFuzzer] make the guards for trace-pc 32-bit; create one array of guards per function, instead of one guard per BB. reorganize the code so that trace-pc-guard does not create unneeded globals
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282735
91177308-0d34-0410-b5e6-
96231b3b80d8
Aditya Kumar [Thu, 29 Sep 2016 11:37:23 +0000 (11:37 +0000)]
Revert "[PR30341] Alias must point to a definition"
This reverts commit r282679.
Ninja check fails, reverting to debug the issue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282710
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Hahnfeld [Thu, 29 Sep 2016 07:43:08 +0000 (07:43 +0000)]
XFAIL Driver/darwin-stdlib.cpp if CLANG_DEFAULT_CXX_STDLIB is set
Until someone rewrites the stdlib logic for Darwin so that we don't need
to pass down the -stdlib argument to cc1.
(see https://llvm.org/bugs/show_bug.cgi?id=30548)
Differential Revision: https://reviews.llvm.org/D24601
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282701
91177308-0d34-0410-b5e6-
96231b3b80d8
Aditya Kumar [Thu, 29 Sep 2016 03:32:04 +0000 (03:32 +0000)]
[PR30341] Alias must point to a definition
Inlining the destructor caused the compiler to generate bad IR which failed the Verifier in the backend.
https://llvm.org/bugs/show_bug.cgi?id=30341
This patch disables alias to available_externally definitions.
Reviewers: eugenis, rsmith
Differential Revision: https://reviews.llvm.org/D24682
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282679
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 29 Sep 2016 00:08:05 +0000 (00:08 +0000)]
Mark P0127R3 as done, and replace its __has_feature check with the corresponding SD-6 macro.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282652
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 28 Sep 2016 23:55:27 +0000 (23:55 +0000)]
P0127R2: Support type deduction for types of non-type template parameters in
C++1z.
Patch by James Touton! Some bugfixes and rebasing by me.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282651
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 28 Sep 2016 22:45:58 +0000 (22:45 +0000)]
[CUDA] Disallow variable-length arrays in CUDA device code.
Reviewers: tra
Subscribers: cfe-commits, jhen
Differential Revision: https://reviews.llvm.org/D25050
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282647
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 28 Sep 2016 22:45:54 +0000 (22:45 +0000)]
[CUDA] Disallow exceptions in device code.
Reviewers: tra
Subscribers: cfe-commits, jhen
Differential Revision: https://reviews.llvm.org/D25036
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282646
91177308-0d34-0410-b5e6-
96231b3b80d8
Gor Nishanov [Wed, 28 Sep 2016 22:37:17 +0000 (22:37 +0000)]
[Coroutines] Add proper mangling for operator co_await for MicrosoftABI
Reviewers: rnk, rsmith
Subscribers: mehdi_amini, cfe-commits
Differential Revision: https://reviews.llvm.org/D25045
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282645
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 28 Sep 2016 22:08:38 +0000 (22:08 +0000)]
Fix bug where template argument deduction of a non-type template parameter used
as a template argument in a template-id, from a null non-type template
argument, failed.
Extracted from a patch by James Touton!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282641
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 28 Sep 2016 21:01:37 +0000 (21:01 +0000)]
cxx_status: use HTML5 details/summary elements to hide implementation status
tables for fully-implemented language modes by default. Also add some missing
elements to TS support table.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282631
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 28 Sep 2016 20:42:56 +0000 (20:42 +0000)]
Add a couple more tentative names for upcoming SD-6 feature checks. These might
not reflect the final chosen names, but supporting them now seems to have
little downside.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282629
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 28 Sep 2016 20:26:06 +0000 (20:26 +0000)]
P0095R3: Implement the latest published revision of SD-6 (C++ feature test macros).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282627
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 28 Sep 2016 19:44:50 +0000 (19:44 +0000)]
P0096R2: Implement more recent revision of SD-6 (C++ feature test macros).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282622
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 28 Sep 2016 19:22:36 +0000 (19:22 +0000)]
Long-overdue update to cxx_status: C++14 is no longer "upcoming".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282621
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 28 Sep 2016 19:09:10 +0000 (19:09 +0000)]
Re-commit r282556, reverted in r282564, with a fix to CallArgList::addFrom to
function correctly when targeting MS ABIs (this appears to have never mattered
prior to this change).
Update test case to always cover both 32-bit and 64-bit Windows ABIs, since
they behave somewhat differently from each other here.
Update test case to also cover operators , && and ||, which it appears are also
affected by P0145R3 (they're not explicitly called out by the design document,
but this is the emergent behavior of the existing wording).
Original commit message:
P0145R3 (C++17 evaluation order tweaks): evaluate the right-hand side of
assignment and compound-assignment operators before the left-hand side. (Even
if it's an overloaded operator.)
This completes the implementation of P0145R3 + P0400R0 for all targets except
Windows, where the evaluation order guarantees for <<, >>, and ->* are
unimplementable as the ABI requires the function arguments are evaluated from
right to left (because parameter destructors are run from left to right in the
callee).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282619
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Belevich [Wed, 28 Sep 2016 17:47:40 +0000 (17:47 +0000)]
[CUDA] Added support for CUDA-8
Differential Revision: https://reviews.llvm.org/D24946
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282610
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Belevich [Wed, 28 Sep 2016 17:47:35 +0000 (17:47 +0000)]
[CUDA] added __nvvm_atom_{sys|cta}_* builtins.
These builtins are available on sm_60+ GPU only.
Differential Revision: https://reviews.llvm.org/D24944
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282609
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Liu [Wed, 28 Sep 2016 12:49:14 +0000 (12:49 +0000)]
Trying to buildbot failures caused by r282577.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282583
91177308-0d34-0410-b5e6-
96231b3b80d8
Elad Cohen [Wed, 28 Sep 2016 11:59:09 +0000 (11:59 +0000)]
[X86] Remove the mm_malloc.h include guard hack from the X86 builtins tests
The X86 clang/test/CodeGen/*builtins.c tests define the mm_malloc.h include
guard as a hack for avoiding its inclusion (mm_malloc.h requires a hosted
environment since it expects stdlib.h to be available - which is not the case
in these internal clang codegen tests).
This patch removes this hack and instead passes -ffreestanding to clang cc1.
Differential Revision: https://reviews.llvm.org/D24825
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282581
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksei Sidorin [Wed, 28 Sep 2016 11:04:42 +0000 (11:04 +0000)]
ASTMerge: explicitly specify arch for GCCAsmStmt test to calm non-x86 buildbots
This should fix r282572.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282578
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Liu [Wed, 28 Sep 2016 11:02:16 +0000 (11:02 +0000)]
Merge conflicting replacements when they are order-independent.
Summary:
Now two replacements are considered order-independent if applying them in
either order produces the same result. These include (but not restricted
to) replacements that:
- don't overlap (being directly adjacent is fine) and
- are overlapping deletions.
- are insertions at the same offset and applying them in either order
has the same effect, i.e. X + Y = Y + X if one inserts text X and the
other inserts text Y.
Discussion about this design can be found in D24717
Reviewers: djasper, klimek
Subscribers: omtcyfz, cfe-commits
Differential Revision: https://reviews.llvm.org/D24800
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282577
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksei Sidorin [Wed, 28 Sep 2016 10:57:36 +0000 (10:57 +0000)]
ASTMerge: specify arch for GCCAsmStmt test explicitly to calm non-x86 buildbots
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282576
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Marjamaki [Wed, 28 Sep 2016 10:39:53 +0000 (10:39 +0000)]
[StaticAnalyzer] Fix false positives for vardecls that are technically unreachable but they are needed.
Example:
switch (x) {
int a; // <- This is unreachable but needed
case 1:
a = ...
Differential Revision: https://reviews.llvm.org/D24905
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282574
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 28 Sep 2016 10:20:10 +0000 (10:20 +0000)]
Fix warnings in clang-completion-mode.el.
- Use defvar to declare variables
- Don't use delete-backward-char, which is for interactive use only
Patch by Philipp Stephani
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282573
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksei Sidorin [Wed, 28 Sep 2016 10:16:56 +0000 (10:16 +0000)]
[ASTImporter] Implement some expression-related AST node import (part 2)
* Some code cleanup
* Add tests not present in http://reviews.llvm.org/D14286
* Integrate a test suite from Serge Pavlov (http://reviews.llvm.org/D14224)
* ArrayTypeTraitExpr: serialize sub-expression to avoid keeping it undefined
* Implement import of some nodes:
- ArrayTypeTraitExpr
- ExpressionTraitExpr
- OpaqueValueExpr
- ArraySubscriptExpr
- ExplicitCastExpr
- ImplicitValueInitExpr
- OffsetOfExpr
- CXXThisExpr
- CXXThrowExpr
- CXXNoexceptExpr
- CXXDefaultArgExpr
- CXXScalarValueInitExpr
- CXXBindTemporaryExpr
- CXXTemporaryObjectExpr
- MaterializeTemporaryExpr
- ExprWithCleanups
- StaticAssertDecl
- FriendDecl
- DecayedType
Differential Revision: https://reviews.llvm.org/D14326
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282572
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Wed, 28 Sep 2016 09:34:51 +0000 (09:34 +0000)]
[Headers] Replace stray indentation with tabs with spaces. NFC.
This matches the rest of the surrounding file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282569
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 28 Sep 2016 02:20:06 +0000 (02:20 +0000)]
Revert r282556. This change made several bots unhappy.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282564
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Tue, 27 Sep 2016 23:44:38 +0000 (23:44 +0000)]
Put new warning in a diagnostic group.
The warning I added in r282426 should be a diagnostic group.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282557
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 27 Sep 2016 23:44:22 +0000 (23:44 +0000)]
P0145R3 (C++17 evaluation order tweaks): evaluate the right-hand side of
assignment and compound-assignment operators before the left-hand side. (Even
if it's an overloaded operator.)
This completes the implementation of P0145R3 + P0400R0 for all targets except
Windows, where the evaluation order guarantees for <<, >>, and ->* are
unimplementable as the ABI requires the function arguments are evaluated from
right to left (because parameter destructors are run from left to right in the
callee).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282556
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Tue, 27 Sep 2016 23:44:07 +0000 (23:44 +0000)]
Revert r282547 and add test to show correct behavior.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282555
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Tue, 27 Sep 2016 23:30:36 +0000 (23:30 +0000)]
[Coverage] The coverage region for switch covers the code after the switch.
This patch fixes a regression introduced in r262697 that changed the way the
coverage regions for switches are constructed. The PGO instrumentation counter
for a switch statement refers to the counter at the exit of the switch.
Therefore, the coverage region for the switch statement should cover the code
that comes after the switch, and not the switch statement itself.
rdar://
28480997
Differential Revision: https://reviews.llvm.org/D24981
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282554
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Tue, 27 Sep 2016 22:28:59 +0000 (22:28 +0000)]
Fix defaulted member functions for templated classes.
In some cases, non-special member functions were being marked as being defaulted
in templated classes. This can cause interactions with later code that expects
the default function to be one of the specific member functions. Fix the check
so that templated class members are checked the same way as non-templated class
members are.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282547
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Tue, 27 Sep 2016 22:19:29 +0000 (22:19 +0000)]
Shorten DiagnosticInfoOptimizationRemark* to OptimizationRemark*. NFC
With the new streaming interface in LLVM, these class names need to be
typed a lot and it's way too looong.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282545
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Tue, 27 Sep 2016 20:55:12 +0000 (20:55 +0000)]
Adapt to LLVM optimization remark interface change. NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282540
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Tue, 27 Sep 2016 19:38:59 +0000 (19:38 +0000)]
Adapt to LLVM EnableStatistics() change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282533
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Tue, 27 Sep 2016 16:39:27 +0000 (16:39 +0000)]
Revert "Adapt to LLVM optimization remark interface change. NFC"
This reverts commit r282500.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282504
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Tue, 27 Sep 2016 16:15:21 +0000 (16:15 +0000)]
Adapt to LLVM optimization remark interface change. NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282500
91177308-0d34-0410-b5e6-
96231b3b80d8
Ayman Musa [Tue, 27 Sep 2016 15:37:31 +0000 (15:37 +0000)]
Update to commit r282488, fix the buildboot failure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282492
91177308-0d34-0410-b5e6-
96231b3b80d8
Ayman Musa [Tue, 27 Sep 2016 14:06:32 +0000 (14:06 +0000)]
[avx512] Add aliases to some missing avx512 intrinsics.
Differential Revision:https: //reviews.llvm.org/D24961
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282488
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 27 Sep 2016 12:17:05 +0000 (12:17 +0000)]
Silencing a Sphinx diagnostic with options, again.
Warning, treated as error:
/opt/llvm/build.attributes.src/tools/clang/docs/CommandGuide/clang.rst:413: WARNING: unknown option: -save-stats=cwd
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282484
91177308-0d34-0410-b5e6-
96231b3b80d8
Nemanja Ivanovic [Tue, 27 Sep 2016 10:45:22 +0000 (10:45 +0000)]
[Power9] Builtins for ELF v.2 ABI conformance - front end portion
This patch corresponds to review:
https://reviews.llvm.org/D24397
It adds the __POWER9_VECTOR__ macro and the -mpower9-vector option along with
a number of altivec.h functions (refer to the code review for a list).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282481
91177308-0d34-0410-b5e6-
96231b3b80d8
Haojian Wu [Tue, 27 Sep 2016 07:53:20 +0000 (07:53 +0000)]
[ASTMatcher] Clarify isStaticStorageClass and hasStaticStorageDuration documents.
Reviewers: aaron.ballman
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D24928
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282474
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 27 Sep 2016 00:53:24 +0000 (00:53 +0000)]
Remove default argument from lambda to appease old MSVC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282464
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 27 Sep 2016 00:52:29 +0000 (00:52 +0000)]
Defend test against differences between 32-bit and 64-bit MSABI manglings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282463
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 26 Sep 2016 23:56:57 +0000 (23:56 +0000)]
P0145R3 (C++17 evaluation order tweaks): evaluate the base expression before
the pointer-to-member expression in calls through .* and ->* expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282457
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 26 Sep 2016 23:49:47 +0000 (23:49 +0000)]
P0145R3 (C++17 evaluation order tweaks): consistently emit the LHS of array
subscripting before the RHS, regardless of which is the base and which is the
index.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282453
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 26 Sep 2016 22:19:08 +0000 (22:19 +0000)]
[clang-format] Don't allow newline after uppercase Obj-C block return types
Fixes the following:
BOOL (^aaa)(void) = ^BOOL {
};
The first BOOL's token was getting set to TT_FunctionAnnotationRParen
incorrectly, which was causing an unexpected newline after (^aaa). This
was introduced in r245846.
Patch by Kent Sutherland, thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282448
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Mon, 26 Sep 2016 22:12:43 +0000 (22:12 +0000)]
headers: add missing Windows ARM Interlocked intrinsics
On ARM, there are multiple versions of each of the intrinsics, with
acquire/relaxed/release barrier semantics.
The newly added ones are provided as inline functions here instead of builtins,
since they should only be available on certain archs (arm/aarch64).
This is necessary in order to compile C++ code for ARM in MSVC mode.
Patch by Martin Storsjö!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282447
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 26 Sep 2016 21:27:23 +0000 (21:27 +0000)]
[Modules TS] Diagnose 'export' declaration within 'export' declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282443
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 26 Sep 2016 20:48:34 +0000 (20:48 +0000)]
Fix test on windows
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282438
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 26 Sep 2016 18:53:34 +0000 (18:53 +0000)]
CC1: Add -save-stats option
This option behaves in a similar spirit as -save-temps and writes
internal llvm statistics in json format to a file.
Differential Revision: https://reviews.llvm.org/D24820
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282426
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 26 Sep 2016 17:04:27 +0000 (17:04 +0000)]
Complete support for the cxxCtorInitializer() AST matcher so that it can be used as a top-level matcher.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282417
91177308-0d34-0410-b5e6-
96231b3b80d8
Haojian Wu [Mon, 26 Sep 2016 16:01:52 +0000 (16:01 +0000)]
[ASTMatcher] Add isStaticStorageClass matcher for varDecl and functionDecl.
Reviewers: klimek
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D24821
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282415
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Marjamaki [Mon, 26 Sep 2016 15:17:18 +0000 (15:17 +0000)]
[analyzer] Improve CastToStruct checker so it can also detect widening casts of struct data
Example:
struct AB {
int A;
int B;
};
struct ABC {
int A;
int B;
int C;
};
void f() {
struct AB Data;
struct ABC *P = (struct ABC *)&Data;
}
Differential Revision: https://reviews.llvm.org/D23508
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282411
91177308-0d34-0410-b5e6-
96231b3b80d8