Ben Langmuir [Wed, 16 Aug 2017 23:12:21 +0000 (23:12 +0000)]
[index] Add indexing for unresolved-using declarations
In dependent contexts we end up referencing these, so make sure they
have USRs, and have their declarations indexed. For the most part they
behave like typedefs, but we also need to worry about having multiple
using declarations with the same "name".
rdar://problem/
33883650
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311053
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Wed, 16 Aug 2017 22:44:17 +0000 (22:44 +0000)]
Fix typos in comments; NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311051
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Wed, 16 Aug 2017 21:51:31 +0000 (21:51 +0000)]
Don't use -no-integrated-as in test/Driver/opt-record.c
-no-integrated-as is not supported on some targets (e.g.,
x86_64-pc-windows-msvc). Testing using -save-temps is good enough to cover the
relevant logic, and that should work everywhere.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311043
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Wed, 16 Aug 2017 21:34:27 +0000 (21:34 +0000)]
Base optimization-record file names on the final output
Using Output.getFilename() to construct the file name used for optimization
recording in Clang::ConstructJob, when -c is provided, does not work correctly
if we're not using the integrated assembler. With -no-integrated-as (or
-save-temps) Output.getFilename() gives the name of the temporary assembly
file, not the final output file. Instead, use the final output (as provided by
-o). If this is not available, then fall back to using a name based on the
input file.
Fixes PR31532.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311041
91177308-0d34-0410-b5e6-
96231b3b80d8
Taewook Oh [Wed, 16 Aug 2017 19:36:24 +0000 (19:36 +0000)]
Use the file name from linemarker for debug info if an input is preprocessed source.
Summary:
Even in the case of the input file is a preprocessed source, clang uses the file name of the preprocesses source for debug info (DW_AT_name attribute for DW_TAG_compile_unit). However, gcc uses the file name specified in the first linemarker instead. This makes more sense because the one specified in the linemarker represents the "actual" source file name.
Clang already uses the file name specified in the first linemarker for Module name (https://github.com/llvm-mirror/clang/blob/master/lib/Frontend/FrontendAction.cpp#L779) if the input is preprocessed. This patch makes clang to use the same value for debug info as well.
Reviewers: compnerd, rnk, dblaikie, rsmith
Reviewed By: rnk
Subscribers: aprantl, cfe-commits
Differential Revision: https://reviews.llvm.org/D36474
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311037
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Wed, 16 Aug 2017 19:06:05 +0000 (19:06 +0000)]
[Driver] SafeStack does not need a runtime library on Fuchsia
Patch by Roland McGrath
Differential Revision: https://reviews.llvm.org/D36779
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311034
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Wed, 16 Aug 2017 19:06:04 +0000 (19:06 +0000)]
[CMake] Build sanitized C++ runtimes for Fuchsia
Differential Revision: https://reviews.llvm.org/D36349
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311033
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Wed, 16 Aug 2017 15:58:46 +0000 (15:58 +0000)]
[OPENMP] Fix for PR28581: OpenMP linear clause - wrong results.
If worksharing construct has at least one linear item, an implicit
synchronization point must be emitted to avoid possible conflict with
the loading/storing values to the original variables. Added implicit
barrier if the linear item is found before actual start of the
worksharing construct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311013
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Wed, 16 Aug 2017 14:01:00 +0000 (14:01 +0000)]
[OPRNMP] Fix for PR33445: ICE: OpenMP target containing ordered for.
If exceptions are enabled, there may be a problem with the codegen of
the finalization functions from OpenMP runtime. It happens because of
the problem with the getting of thread identifier value. Patch tries to
fix it by using the result of the call of function
__kmpc_global_thread_num() rather than loading of value of outlined
function parameter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311007
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Wed, 16 Aug 2017 07:22:49 +0000 (07:22 +0000)]
Fix a UBSan failure where this boolean was copied when uninitialized.
When r310905 moved the pointer and bool out of a PointerIntPair, it made
them end up uninitialized and caused UBSan failures when copying the
uninitialized boolean. However, making the pointer be null should avoid
the reference to the boolean entirely.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310994
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Wed, 16 Aug 2017 04:15:28 +0000 (04:15 +0000)]
Fix comments about __OPENCL_MEMORY_SCOPE_* macros
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310986
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 16 Aug 2017 01:49:53 +0000 (01:49 +0000)]
PR19668, PR23034: Fix handling of move constructors and deleted copy
constructors when deciding whether classes should be passed indirectly.
This fixes ABI differences between Clang and GCC:
* Previously, Clang ignored the move constructor when making this
determination. It now takes the move constructor into account, per
https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
seem recent, but the ABI change was agreed on the Itanium C++ ABI
list a long time ago).
* Previously, Clang's behavior when the copy constructor was deleted
was unstable -- depending on whether the lazy declaration of the
copy constructor had been triggered, you might get different behavior.
We now eagerly declare the copy constructor whenever its deletedness
is unclear, and ignore deleted copy/move constructors when looking for
a trivial such constructor.
This also fixes an ABI difference between Clang and MSVC:
* If the copy constructor would be implicitly deleted (but has not been
lazily declared yet), for instance because the class has an rvalue
reference member, we would pass it directly. We now pass such a class
indirectly, matching MSVC.
Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
Schmidt, which was based on a patch by Reid Kleckner!
This is a re-commit of r310401, which was reverted in r310464 due to ARM
failures (which should now be fixed).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310983
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 16 Aug 2017 01:46:46 +0000 (01:46 +0000)]
Add test that we get the correct calling convention and mangling for va_list.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310982
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 16 Aug 2017 00:06:07 +0000 (00:06 +0000)]
Add missing test for warning added in r310803.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310978
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Albert [Tue, 15 Aug 2017 23:57:34 +0000 (23:57 +0000)]
Revert "Revert "Revert "Fix LLVMgold plugin name/path for non-Linux."""
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310977
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Albert [Tue, 15 Aug 2017 23:57:32 +0000 (23:57 +0000)]
Revert "Add a target for new LTO plugin name tests."
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310976
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 15 Aug 2017 22:58:45 +0000 (22:58 +0000)]
Do not look through pack expansions when looking for unexpanded parameter packs.
Fixes a selection of rejects-valids when pack-expanding a lambda that itself
contains a pack expansion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310972
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Albert [Tue, 15 Aug 2017 22:10:44 +0000 (22:10 +0000)]
Add a target for new LTO plugin name tests.
Not all targets will use -plugin with -flto. Pick a fixed target so
this works regardless of the default target (regardless of host OS,
the toolchain should be picking the correct LTO plugin for a target
that supports it).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310966
91177308-0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 15 Aug 2017 21:42:52 +0000 (21:42 +0000)]
Extract IRGen's constant-emitter into its own helper class and clean up
the interface.
The ultimate goal here is to make it easier to do some more interesting
things in constant emission, like emit constant initializers that have
ignorable side-effects, or doing the majority of an initialization
in-place and then patching up the last few things with calls. But for
now this is mostly just a refactoring.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310964
91177308-0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 15 Aug 2017 21:42:47 +0000 (21:42 +0000)]
Allow the target field of a CK_ToUnion to be more easily recovered.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310963
91177308-0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 15 Aug 2017 21:42:42 +0000 (21:42 +0000)]
Allow StmtVisitor visitation to be parameterized. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310962
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Albert [Tue, 15 Aug 2017 21:31:17 +0000 (21:31 +0000)]
Revert "Revert "Fix LLVMgold plugin name/path for non-Linux.""
Summary:
Relanding https://reviews.llvm.org/D35739 which was reverted because
it broke the tests on non-Linux. The tests have been fixed to be
platform agnostic, and additional tests have been added to make sure
that the plugin has the correct extension on each platform
(%pluginext doesn't work in CHECK lines).
Reviewers: srhines, pirama
Reviewed By: srhines
Subscribers: emaste, mehdi_amini, eraman, cfe-commits
Differential Revision: https://reviews.llvm.org/D36769
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310960
91177308-0d34-0410-b5e6-
96231b3b80d8
Stephen Hines [Tue, 15 Aug 2017 21:20:41 +0000 (21:20 +0000)]
Switch to consumeError(), since this can crash otherwise.
Summary:
If assertions are disabled, but LLVM_ABI_BREAKING_CHANGES is enabled,
this will cause an issue with an unchecked Success. Switching to
consumeError() is the correct way to bypass the check.
Reviewers: llvm-commits, cfe-commits, arphaman
Reviewed By: arphaman
Subscribers: arphaman, klimek, pirama
Differential Revision: https://reviews.llvm.org/D36728
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310958
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Tue, 15 Aug 2017 19:54:04 +0000 (19:54 +0000)]
Fixup for r310950: Also remove the new instance of %T from html-diags.c
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310952
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Tue, 15 Aug 2017 19:47:06 +0000 (19:47 +0000)]
[clang] Get rid of "%T" expansions
The %T lit expansion expands to a common directory shared between all the tests in the same directory, which is unexpected and unintuitive, and more importantly, it's been a source of subtle race conditions and flaky tests. In https://reviews.llvm.org/D35396, it was agreed that it would be best to simply ban %T and only keep %t, which is unique to each test. When a test needs a temporary directory, it can just create one using mkdir %t.
This patch removes %T in clang.
Differential Revision: https://reviews.llvm.org/D36437
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310950
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Shaposhnikov [Tue, 15 Aug 2017 19:23:54 +0000 (19:23 +0000)]
[clang] Code cleanup in clang/tooling
1. Add missing explicit for SymbolName constructor.
2. Add missing std::move in createRenameReplacements.
Differential revision: https://reviews.llvm.org/D36715
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310948
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 15 Aug 2017 19:11:21 +0000 (19:11 +0000)]
PR33082: Improve tracking of unexpanded parameter packs within variadic generic lambdas.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310946
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Tue, 15 Aug 2017 17:59:26 +0000 (17:59 +0000)]
Attempt to fix failure in CodeGenOpenCL/atomic-ops.cl again
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310937
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 15 Aug 2017 17:20:37 +0000 (17:20 +0000)]
[index] Update indexing to handle CXXDeductionGuideDecls properly
CXXDeductionGuideDecls can't be referenced so there's no need to output a symbol occurrence for them.
Also handle DeducedTemplateSpecializationTypeLocs in the TypeIndexer so we don't miss the symbol occurrences of the corresponding template decls.
Patch by Nathan Hawes!
Differential Revision: https://reviews.llvm.org/D36641
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310933
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Tue, 15 Aug 2017 17:16:44 +0000 (17:16 +0000)]
Attempt to fix failure in CodeGenOpenCL/atomic-ops.cl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310932
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Tue, 15 Aug 2017 16:30:31 +0000 (16:30 +0000)]
Remove -finclude-default-header in OpenCL atomic tests
Differential Revision: https://reviews.llvm.org/D36676
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310927
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Tue, 15 Aug 2017 16:02:49 +0000 (16:02 +0000)]
[OpenCL] Support variable memory scope in atomic builtins
Differential Revision: https://reviews.llvm.org/D36580
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310924
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Tue, 15 Aug 2017 14:42:01 +0000 (14:42 +0000)]
Allow pretty platform names in availability attributes
rdar://
32076651
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310921
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Tue, 15 Aug 2017 14:34:04 +0000 (14:34 +0000)]
[OPENMP] Fix compiler crash on argument translate for NVPTX.
When translating arguments for NVPTX target it is not taken into account
that function may have variable number of arguments. Patch fixes this
problem.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310920
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Tue, 15 Aug 2017 12:40:01 +0000 (12:40 +0000)]
[Sema] Silence -Wobjc-missing-property-synthesis for unavailable properties
rdar://
30296911
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310916
91177308-0d34-0410-b5e6-
96231b3b80d8
Sven van Haastregt [Tue, 15 Aug 2017 09:38:18 +0000 (09:38 +0000)]
[OpenCL] Allow targets to select address space per type
Generalize getOpenCLImageAddrSpace into getOpenCLTypeAddrSpace, such
that targets can select the address space per type.
No functional changes intended.
Initial patch by Simon Perretta.
Differential Revision: https://reviews.llvm.org/D33989
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310911
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 15 Aug 2017 01:17:47 +0000 (01:17 +0000)]
Avoid PointerIntPair of constexpr EvalInfo structs
They are stack allocated, so their alignment is not to be trusted.
32-bit MSVC only guarantees 4 byte stack alignment, even though alignof
would tell you otherwise. I tried fixing this with __declspec align, but
that apparently upsets GCC. Hopefully this version will satisfy all
compilers.
See PR32018 for some info about the mingw issues.
Should supercede https://reviews.llvm.org/D34873
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310905
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Albert [Tue, 15 Aug 2017 00:31:44 +0000 (00:31 +0000)]
Revert "Fix LLVMgold plugin name/path for non-Linux."
Broke a test. Will fix the test and re-land later.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310903
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Tue, 15 Aug 2017 00:22:00 +0000 (00:22 +0000)]
[CMake] Include LLVMFuzzer in Fuchsia toolchain
Differential Revision: https://reviews.llvm.org/D36541
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310901
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Albert [Mon, 14 Aug 2017 23:19:38 +0000 (23:19 +0000)]
Fix LLVMgold plugin name/path for non-Linux.
Summary:
It's only named LLVMgold.so on Linux. Fix the name for Windows and
Darwin.
Also fix the path for Windows so binutils doesn't have to.
Reviewers: srhines, pirama
Reviewed By: srhines
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D35739
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310895
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Shaposhnikov [Mon, 14 Aug 2017 21:23:08 +0000 (21:23 +0000)]
[analyzer] Fix SimpleSValBuilder::simplifySVal
This diff fixes a crash (triggered assert) on the newly added test case.
In the method Simplifier::VisitSymbolData we check the type of S and return
Loc/NonLoc accordingly.
Differential revision: https://reviews.llvm.org/D36564
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310887
91177308-0d34-0410-b5e6-
96231b3b80d8
Erik Pilkington [Mon, 14 Aug 2017 19:49:12 +0000 (19:49 +0000)]
[Sema] Improve some -Wunguarded-availability diagnostics
rdar://
33543523
Differential revision: https://reviews.llvm.org/D36200
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310874
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Mon, 14 Aug 2017 17:56:13 +0000 (17:56 +0000)]
[OPENMP] Fix for PR33922: New ident_t flags for
__kmpc_for_static_init().
OpenMP 5.0 will include OpenMP Tools interface that requires distinguishing different worksharing constructs.
Since the same entry point (__kmp_for_static_init(ident_t *loc,
kmp_int32 global_tid,........)) is called in case static
loop/sections/distribute it is suggested using 'flags' field of the
ident_t structure to pass the type of the construct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310865
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Mon, 14 Aug 2017 16:19:24 +0000 (16:19 +0000)]
[rename] Introduce symbol occurrences
Symbol occurrences store the results of local rename and will also be used for
the global, indexed rename results. Their kind is used to determine whether they
should be renamed automatically or not. They can be converted to a set of
AtomicChanges as well.
Differential Revision: https://reviews.llvm.org/D36156
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310853
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Probst [Mon, 14 Aug 2017 16:09:08 +0000 (16:09 +0000)]
clang-format: [JS] wrap optional properties in type aliases.
Summary:
clang-format wraps object literal keys in an object literal if they are
marked as `TT_SelectorName`s and/or the colon is marked as
`TT_DictLiteral`. Previously, clang-format would accidentally work
because colons in type aliases were marked as `TT_DictLiteral`. r310367
fixed this to assing `TT_JsTypeColon`, which broke wrapping in certain
situations. However the root cause was that clang-format incorrectly
didn't skip questionmarks when detecting selector name.
This change fixes both locations to (1) assign `TT_SelectorName` and (2)
treat `TT_JsTypeColon` like `TT_DictLiteral`.
Previously:
type X = {
a: string, b?: string,
};
Now:
type X = {
a: string,
b?: string,
};
Reviewers: djasper, sammccall
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D36684
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310852
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Probst [Mon, 14 Aug 2017 16:08:16 +0000 (16:08 +0000)]
clang-format: [JS] do not insert whitespace in call positions.
Summary:
In JavaScript, may keywords can be used in method names and thus call sites:
foo.delete();
foo.instanceof();
clang-format would previously insert whitespace after the `instanceof`. This
change generically skips inserting whitespace between a keyword and a
parenthesis if preceded by a dot, i.e. in a callsite.
Reviewers: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D36142
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310851
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Mon, 14 Aug 2017 16:03:47 +0000 (16:03 +0000)]
[OPENMP][DEBUG] Fix for PR33676: Debug info for OpenMP region is broken.
After some changes in clang/LLVM debug info for task-based regions was
not generated at all. Patch fixes this problem.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310850
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Mon, 14 Aug 2017 15:01:03 +0000 (15:01 +0000)]
[OPENMP] Generalization of calls of the outlined functions.
General improvement of the outlined functions calls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310840
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Mon, 14 Aug 2017 14:29:11 +0000 (14:29 +0000)]
[Parse] Fix typo in header docs (NFC)
Summary:
Fix typo "delcarations", added in rL310609 and rL310627.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310838
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 14 Aug 2017 14:16:00 +0000 (14:16 +0000)]
Fixes a typo in a comment; NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310837
91177308-0d34-0410-b5e6-
96231b3b80d8
Krasimir Georgiev [Mon, 14 Aug 2017 11:06:07 +0000 (11:06 +0000)]
clang-format: Fix left pointer alignment after delctype/typeof
Change 272124* introduced a regression in spaceRequiredBetween for left aligned pointers to decltype and typeof expressions. This fix adds logic to fix this. The test added is based on a related test in determineStarAmpUsage. Also add test cases for the regression.
http://llvm.org/viewvc/llvm-project?view=revision&revision=272124
LLVM bug tracker: https://bugs.llvm.org/show_bug.cgi?id=30407
Differential revision: https://reviews.llvm.org/D35847
Fix contributed by euhlmann!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310831
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Mon, 14 Aug 2017 10:59:44 +0000 (10:59 +0000)]
Set the lexical context for dummy tag decl inside createTagFromNewDecl
This is a follow-up to r310706. This change has been recommended by
Bruno Cardoso Lopes and Richard Smith.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310829
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Mon, 14 Aug 2017 08:38:47 +0000 (08:38 +0000)]
[analyzer] Rename functions responsible for CFG-based suppress-on-sink.
Update comments. No functional change intended.
Addresses Devin's post-commit review comments in https://reviews.llvm.org/D35673
and https://reviews.llvm.org/D35674.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310820
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Hahnfeld [Mon, 14 Aug 2017 07:44:05 +0000 (07:44 +0000)]
Fix memory leak in ToolChain::TranslateOpenMPTargetArgs
rL310433 introduced a code path where DAL is not returned and must be freed.
This change allows to run openmp-offload.c when Clang is built with ASan.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310817
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 13 Aug 2017 23:37:29 +0000 (23:37 +0000)]
Rename cxx1z -> cxx17 across all diagnostic IDs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310805
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 13 Aug 2017 22:26:53 +0000 (22:26 +0000)]
Replace remaining user-visible mentions of C++1z with C++17.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310804
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 13 Aug 2017 21:32:33 +0000 (21:32 +0000)]
[c++2a] Treat 'concept' and 'requires' as keywords, add compat warning for C++17 and before.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310803
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Sun, 13 Aug 2017 19:42:17 +0000 (19:42 +0000)]
[AArch64] Add support for a MinGW AArch64 target
Differential Revision: https://reviews.llvm.org/D36364
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310798
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Sat, 12 Aug 2017 15:15:10 +0000 (15:15 +0000)]
clang-format: add an option -verbose to list the files being processed
Reviewers: djasper
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D34824
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310778
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sat, 12 Aug 2017 01:46:03 +0000 (01:46 +0000)]
PR34163: Don't cache an incorrect key function for a class if queried between
the class becoming complete and its inline methods being parsed.
This replaces the hack of using the "late parsed template" flag to track member
functions with bodies we've not parsed yet; instead we now use the "will have
body" flag, which carries the desired implication that the function declaration
*is* a definition, and that we've just not parsed its body yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310776
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sat, 12 Aug 2017 01:38:26 +0000 (01:38 +0000)]
Revert "[Modules] Prevent #import to reenter header if not building a module."
This reverts commit r310605. Richard pointed out a better way to achieve
this, which I'll post a patch for soon.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310775
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 12 Aug 2017 01:27:10 +0000 (01:27 +0000)]
Add a Dockerfile for clang-proto-fuzzer
Summary: Add a Dockerfile for clang-proto-fuzzer
Reviewers: morehouse, vitalybuka
Reviewed By: morehouse
Subscribers: hintonda, cfe-commits
Differential Revision: https://reviews.llvm.org/D36635
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310774
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Shlyapnikov [Fri, 11 Aug 2017 23:10:39 +0000 (23:10 +0000)]
Disabling openmp-offload.c on linux until it is stabilized on all local configurations.
Differential revision: https://reviews.llvm.org/D29660
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310772
91177308-0d34-0410-b5e6-
96231b3b80d8
Gheorghe-Teodor Bercea [Fri, 11 Aug 2017 21:17:50 +0000 (21:17 +0000)]
[OpenMP] Move failing flag tests to disabled GPU
offloading test file. This should prevent further errors
with the sanitizer.
Diff: D29660
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310765
91177308-0d34-0410-b5e6-
96231b3b80d8
George Karpenkov [Fri, 11 Aug 2017 17:22:58 +0000 (17:22 +0000)]
Add -fsanitize=fuzzer-no-link flag to the driver.
The flag will perform instrumentation necessary to the fuzzing,
but will NOT link libLLVMFuzzer.a library.
Necessary when modifying CFLAGS for projects which may produce
executables as well as a fuzzable target.
Differential Revision: https://reviews.llvm.org/D36600
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310733
91177308-0d34-0410-b5e6-
96231b3b80d8
Gheorghe-Teodor Bercea [Fri, 11 Aug 2017 15:46:22 +0000 (15:46 +0000)]
[OpenMP] Enable previously successful offloading tests.
Create a separate test file to contain all tests for OpenMP
offloading to GPUs.
Make libdevice checking more robust by accounting for
the case in which no libdevice is found.
This changes are in connrection with diff: D29660
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310718
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Fri, 11 Aug 2017 15:23:23 +0000 (15:23 +0000)]
[mips] Add missing mips-registered-target to mips test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310715
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Fri, 11 Aug 2017 15:01:34 +0000 (15:01 +0000)]
[mips] Support implicit gpopt with N64 when using -fno-pic
As clang defaults to -mno-abicalls when using -fno-pic for N64, implicitly use
-mgpopt in that case.
Reviewers: atanasyan
Differential Revision: https://reviews.llvm.org/D36315
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310714
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Fri, 11 Aug 2017 12:06:52 +0000 (12:06 +0000)]
[modules] Set the lexical DC for dummy tag decls that refer to hidden
declarations that are made visible after the dummy is parsed and ODR verified
Prior to this commit the
"(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
assertion failure was triggered during semantic analysis of the dummy
tag declaration that was declared in another tag declaration because its
lexical context did not point to the outer tag decl.
rdar://
32292196
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310706
91177308-0d34-0410-b5e6-
96231b3b80d8
Stefan Maksimovic [Fri, 11 Aug 2017 11:39:07 +0000 (11:39 +0000)]
Revert r302670 for the upcoming 5.0.0 release
This is causing failures when compiling clang with -O3
as one of the structures used by clang is passed by
value and uses the fastcc calling convention.
Faliures manifest for stage2 mips build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310704
91177308-0d34-0410-b5e6-
96231b3b80d8
Stefan Maksimovic [Fri, 11 Aug 2017 11:03:54 +0000 (11:03 +0000)]
Revert r310057
Bring back changes which r304953 introduced since
they were in fact not the cause of failures described
in r310057 commit message.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310702
91177308-0d34-0410-b5e6-
96231b3b80d8
Yuka Takahashi [Fri, 11 Aug 2017 09:44:42 +0000 (09:44 +0000)]
[Bash-autocompletion] Add --autocomplete flag to 5.0 release notes
Summary:
I thought we should add this information to release notes, because we
added a new flag to clang driver.
Reviewers: v.g.vassilev, teemperor, ruiu
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D36567
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310700
91177308-0d34-0410-b5e6-
96231b3b80d8
Josh Gao [Fri, 11 Aug 2017 07:54:35 +0000 (07:54 +0000)]
Revert "Thread Safety Analysis: warn on nonsensical attributes."
This reverts commit rL310403, which caused spurious warnings in libc++,
because it didn't properly handle templated scoped lockable types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310698
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 11 Aug 2017 03:39:40 +0000 (03:39 +0000)]
Implement latest feature test macro recommendations, P0096R4.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310694
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 11 Aug 2017 03:16:11 +0000 (03:16 +0000)]
Update cxx_status to mention the upcoming Clang 5 release.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310693
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 11 Aug 2017 03:14:20 +0000 (03:14 +0000)]
PR33850: Update cxx_dr_status for Clang 5 branch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310692
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 11 Aug 2017 02:04:19 +0000 (02:04 +0000)]
PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310691
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 11 Aug 2017 00:06:49 +0000 (00:06 +0000)]
[Sema][ObjC] Fix spurious -Wcast-qual warnings.
We do not meaningfully track object const-ness of Objective-C object
types. Silence the -Wcast-qual warning that is issued when casting to or
from Objective-C object types results in losing const qualification.
rdar://problem/
33807915
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310672
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 10 Aug 2017 20:28:30 +0000 (20:28 +0000)]
[X86] Implement __builtin_cpu_is
This patch adds support for __builtin_cpu_is. I've tried to match the strings supported to the latest version of gcc.
Differential Revision: https://reviews.llvm.org/D35449
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310657
91177308-0d34-0410-b5e6-
96231b3b80d8
Kamil Rytarowski [Thu, 10 Aug 2017 18:53:52 +0000 (18:53 +0000)]
Enable bunch of sanitizers on NetBSD/X86 and X86_64
Summary:
Enable more sanitizers:
- i386 and amd64:
* SanitizerKind::Vptr;
* SanitizerKind::Leak;
* SanitizerKind::SafeStack;
* SanitizerKind::Function;
- amd64 only:
* SanitizerKind::Thread;
These sanitizers are in the process of upstreaming to LLVM projects.
Sponsored by <The NetBSD Foundation>
Reviewers: joerg, dim, vitalybuka, kcc, filcab, fjricci
Reviewed By: vitalybuka
Subscribers: #sanitizers, cfe-commits
Tags: #sanitizers
Differential Revision: https://reviews.llvm.org/D36482
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310649
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Shlyapnikov [Thu, 10 Aug 2017 17:55:01 +0000 (17:55 +0000)]
Disabling openmp-offload.c on linux until it is stabilized on all local configurations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310640
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Thu, 10 Aug 2017 17:02:04 +0000 (17:02 +0000)]
[Parse] Document Parser::SkipFunctionBodies
Reviewers: erikjv, doug.gregor
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D36531
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310627
91177308-0d34-0410-b5e6-
96231b3b80d8
Gheorghe-Teodor Bercea [Thu, 10 Aug 2017 16:56:59 +0000 (16:56 +0000)]
[OpenMP] Delete tests in openmp-offload.c which cuase failures
until a better way to perform these tests is figured out.
Change connected to diff: D29654
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310625
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 10 Aug 2017 16:42:46 +0000 (16:42 +0000)]
Add a getName accessor for ModuleMacros.
Swift would like to be able to access the name of a ModuleMacro.
There was some discussion of this in
https://github.com/apple/swift-clang/pull/93, suggesting that it makes
sense to have this accessor in Clang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310622
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Thu, 10 Aug 2017 16:10:40 +0000 (16:10 +0000)]
Fixed a race condition in PrecompiledPreamble.
Summary:
Two PrecompiledPreambles, used in parallel on separate threads,
could be writing preamble to the same temporary file.
Reviewers: bkramer, krasimir, klimek
Reviewed By: klimek
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D36529
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310618
91177308-0d34-0410-b5e6-
96231b3b80d8
Momchil Velikov [Thu, 10 Aug 2017 15:43:06 +0000 (15:43 +0000)]
Place implictly declared functions at block scope
Such implicitly declared functions behave as if the enclosing block
contained the declaration extern int name() (C90, 6.3.3.2 Function calls),
thus their names should have block scope (C90, 6.1.2.1 Scope of identifiers).
This patch fixes https://bugs.llvm.org/show_bug.cgi?id=33224
Differential Revision: https://reviews.llvm.org/D33676
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310616
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Thu, 10 Aug 2017 15:42:31 +0000 (15:42 +0000)]
[mips] Group all `-mabicalls` related checks in the single place. NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310615
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Thu, 10 Aug 2017 15:42:25 +0000 (15:42 +0000)]
[mips] Show warning in case of mixing -mlong-calls and -mabicalls options
While we do not support `-mshared / -mno-shared` properly, show warning
and ignore `-mlong-calls` option in case of implicitly or explicitly
provided `-mabicalls` option.
Differential revision: https://reviews.llvm.org/D36551
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310614
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Thu, 10 Aug 2017 15:42:16 +0000 (15:42 +0000)]
[mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI
The -mabicalls option does not make sense in the case of non position
independent code for the N64 ABI. After this change the driver shows a
warning that -mabicalls is ignored in that case.
Differential revision: https://reviews.llvm.org/D36550
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310613
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Thu, 10 Aug 2017 15:30:35 +0000 (15:30 +0000)]
[Parse] Document PrintStats, SkipFunctionBodies
Summary:
Add documentation for `clang::ParseAST` parameters `PrintStats` and
`SkipFunctionBodies`. Also, remove a tiny bit of trailing whitespace.
Reviewers: craig.topper, doug.gregor, erikjv
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D36530
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310609
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 10 Aug 2017 15:16:24 +0000 (15:16 +0000)]
[Modules] Prevent #import to reenter header if not building a module.
When non-modular headers are imported while not building a module but
in -fmodules mode, be conservative and preserve the default #import
semantic: do not reenter headers.
rdar://problem/
33745031
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310605
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Potapenko [Thu, 10 Aug 2017 15:00:13 +0000 (15:00 +0000)]
[sanitizer-coverage] Change cmp instrumentation to distinguish const operands
This implementation of SanitizerCoverage instrumentation inserts different
callbacks depending on constantness of operands:
1. If both operands are non-const, then a usual
__sanitizer_cov_trace_cmp[1248] call is inserted.
2. If exactly one operand is const, then a
__sanitizer_cov_trace_const_cmp[1248] call is inserted. The first
argument of the call is always the constant one.
3. If both operands are const, then no callback is inserted.
This separation comes useful in fuzzing when tasks like "find one operand
of the comparison in input arguments and replace it with the other one"
have to be done. The new instrumentation allows us to not waste time on
searching the constant operands in the input.
Patch by Victor Chibotaru.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310600
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikolai Bozhenov [Thu, 10 Aug 2017 11:22:52 +0000 (11:22 +0000)]
[ValueTracking] Enabling ValueTracking patch by default (recommit). Part 1.
The original patch was an improvement to IR ValueTracking on non-negative
integers. It has been checked in to trunk (D18777, r284022). But was disabled by
default due to performance regressions.
Perf impact has improved. The patch would be enabled by default.
Reviewers: reames, hfinkel
Differential Revision: https://reviews.llvm.org/D34101
Patch by: Olga Chupina <olga.chupina@intel.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310582
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Thu, 10 Aug 2017 10:34:46 +0000 (10:34 +0000)]
Revert r310489 and follow-up commits r310505, r310519, r310537 and r310549
Commit r310489 caused 'openmp-offload.c' test failures on Darwin and other
platforms:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/39230/testReport/junit/Clang/Driver/openmp_offload_c/
The follow-up commits tried to fix the test, but the test is still failing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310580
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Thu, 10 Aug 2017 10:06:16 +0000 (10:06 +0000)]
[Lexer] Finding beginning of token with escaped new line
Summary:
Lexer::GetBeginningOfToken produced invalid location when
backtracking across escaped new lines.
This fixes PR26228
Reviewers: akyrtzi, alexfh, rsmith, doug.gregor
Reviewed By: alexfh
Subscribers: alexfh, cfe-commits
Patch by Paweł Żukowski!
Differential Revision: https://reviews.llvm.org/D30748
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310576
91177308-0d34-0410-b5e6-
96231b3b80d8
Gheorghe-Teodor Bercea [Thu, 10 Aug 2017 05:01:42 +0000 (05:01 +0000)]
[OpenMP] Provide a default GPU arch that is supported by
the underlying hardware.
This fixes a bug triggered by diff: D29660
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310549
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Thu, 10 Aug 2017 04:16:38 +0000 (04:16 +0000)]
[Driver] Search compiler-rt paths in -print-file-name=
This makes it possible to print the name of compiler-rt libraries
by using simply clang -print-file-name=libclang_rt.${runtime}-${arch}.so
same as other libraries, without having to know the details of the
resource directory organization.
Differential Revision: https://reviews.llvm.org/D35820
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310548
91177308-0d34-0410-b5e6-
96231b3b80d8
Jacob Bandes-Storch [Thu, 10 Aug 2017 01:30:22 +0000 (01:30 +0000)]
[clang-format] let PointerAlignment dictate spacing of function ref qualifiers
Summary: The original changes for ref qualifiers in rL272537 and rL272548 allowed function const+ref qualifier spacing to diverge from the spacing used for variables. It seems more consistent for `T const& x;` to match `void foo() const&;`.
Reviewers: djasper
Reviewed By: djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D34324
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310544
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Thu, 10 Aug 2017 00:19:43 +0000 (00:19 +0000)]
Remove unused function
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310540
91177308-0d34-0410-b5e6-
96231b3b80d8
Jacob Bandes-Storch [Thu, 10 Aug 2017 00:15:31 +0000 (00:15 +0000)]
clang-format: Fix bug with ENAS_DontAlign and empty lines
This fixes a bug in `ENAS_DontAlign` (introduced in D32733) where blank lines had an EscapedNewlineColumn of 0, causing a subtraction to overflow when converted back to unsigned and leading to runaway memory allocation.
Differential Revision: https://reviews.llvm.org/D36019
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310539
91177308-0d34-0410-b5e6-
96231b3b80d8