Sriraman Tallam [Tue, 7 Nov 2017 19:37:51 +0000 (19:37 +0000)]
New clang option -fno-plt which avoids the PLT and lazy binding while making external calls.
Differential Revision: https://reviews.llvm.org/D39079
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317605
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Tue, 7 Nov 2017 18:30:23 +0000 (18:30 +0000)]
[refactor] rename field references in __builtin_offsetof
rdar://
33875453
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317599
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rokos [Tue, 7 Nov 2017 18:27:04 +0000 (18:27 +0000)]
Clang/libomptarget map interface flag renaming - NFC patch
This patch renames some of the flag names of the clang/libomptarget map interface. The old names are slightly misleading, whereas the new ones describe in a better way what each flag is about.
Only the macros within the enumeration are renamed, there is no change in functionality therefore there are no updated regression tests.
Differential Revision: https://reviews.llvm.org/D39745
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317598
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Tue, 7 Nov 2017 18:25:36 +0000 (18:25 +0000)]
[index] __builtin_offset's field reference is located at the end location
The starting location is the location of the '.'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317596
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Tue, 7 Nov 2017 17:29:11 +0000 (17:29 +0000)]
[index] index field references in __builtin_offset
rdar://
35109556
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317593
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Tue, 7 Nov 2017 16:40:51 +0000 (16:40 +0000)]
SystemZ Swift TargetInfo: swifterror support in the backend is broken
Return false for swifterror support until the backend is fixed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317589
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 7 Nov 2017 15:13:22 +0000 (15:13 +0000)]
[CodeGen] split math and complex tests into separate files; NFCI
The files are already large, and we may need to add even more RUNs to
distinguish differences based on OS, environment, or other platform things.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317583
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Liu [Tue, 7 Nov 2017 14:35:03 +0000 (14:35 +0000)]
[clang-refactor] Use ClangTool more explicitly by making refaroing actions AST frontend actions.
Summary: This is a refactoring change. NFC
Reviewers: arphaman, hokein
Reviewed By: arphaman, hokein
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D39675
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317577
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Tue, 7 Nov 2017 10:51:15 +0000 (10:51 +0000)]
[analyzer] pr34779: CStringChecker: Accept non-standard headers.
Do not crash when trying to define and call a non-standard
strcpy(unsigned char *, unsigned char *) during analysis.
At the same time, do not try to actually evaluate the call.
Differential Revision: https://reviews.llvm.org/D39422
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317565
91177308-0d34-0410-b5e6-
96231b3b80d8
Sjoerd Meijer [Tue, 7 Nov 2017 10:09:45 +0000 (10:09 +0000)]
[docs] Add section 'Half-Precision Floating Point'
This documents the differences/interactions between _Float16 and __fp16
and is a companion change for the _Float16 type implementation (r312794).
Differential Revision: https://reviews.llvm.org/D35295
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317558
91177308-0d34-0410-b5e6-
96231b3b80d8
George Karpenkov [Tue, 7 Nov 2017 02:02:10 +0000 (02:02 +0000)]
[analyzer] [NFC] Remove unused typedef from SVals.h
Differential Revision: https://reviews.llvm.org/D39620
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317537
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Tue, 7 Nov 2017 00:31:19 +0000 (00:31 +0000)]
Clarify the error message for unsupported aliases on Darwin
rdar://
35109556
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317532
91177308-0d34-0410-b5e6-
96231b3b80d8
Devin Coughlin [Mon, 6 Nov 2017 22:12:19 +0000 (22:12 +0000)]
[analyzer] Model correct dispatch_once() 'done' value in BodyFarm
The analyzer's BodyFarm models dispatch_once() by comparing the passed-in
predicate against a known 'done' value. If the predicate does not have that
value, the model updates the predicate to have that value and executes the
passed in block.
Unfortunately, the current model uses the wrong 'done' value: 1 instead of ~0.
This interferes with libdispatch's static inline function _dispatch_once(),
which enables a fast path if the block has already been executed. That function
uses __builtin_assume() to tell the compiler that the done flag is set to ~0 on
exit. When r302880 added modeling of __builtin_assume(), this caused the
analyzer to assume 1 == ~0. This in turn caused the analyzer to never explore any code after a call to dispatch_once().
This patch regains the missing coverage by updating BodyFarm to use the correct
'done' value.
rdar://problem/
34413048
Differential Revision: https://reviews.llvm.org/D39691
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317516
91177308-0d34-0410-b5e6-
96231b3b80d8
Dave Lee [Mon, 6 Nov 2017 21:18:05 +0000 (21:18 +0000)]
Vary Windows toolchain selection by -fuse-ld
Summary:
This change allows binutils to be used for linking with MSVC. Currently, when
using an MSVC target and `-fuse-ld=bfd`, the driver produces an invalid linker
invocation.
Reviewers: rnk, compnerd
Reviewed By: compnerd
Subscribers: smeenai, cfe-commits
Differential Revision: https://reviews.llvm.org/D39509
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317511
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 6 Nov 2017 21:00:49 +0000 (21:00 +0000)]
[X86] Replace the mask cmpeq/cmple/cmplt/cmpgt/cmpge/cmpneq intrinsics with macros that just pass the right comparison predicate value to the regular cmp intrinsic. Remove mask cmpeq/cmpgt builtins that are now unused.
This shortens the intrinsic headers a little and allows us to get rid of the cmpeq and cmpgt handling from CGBuiltin.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317506
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Mon, 6 Nov 2017 20:33:13 +0000 (20:33 +0000)]
[X86] Add 3dnow and 3dnowa to the list of valid target features
These were missed in SVN r316783, which broke compiling mingw-w64 CRT.
Differential Revision: https://reviews.llvm.org/D39631
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317504
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Korous [Mon, 6 Nov 2017 17:42:17 +0000 (17:42 +0000)]
[Parser] Fix TryParseLambdaIntroducer() error handling
rdar://
35066196
Differential Revision: https://reviews.llvm.org/D39419
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317493
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 6 Nov 2017 16:27:36 +0000 (16:27 +0000)]
[CodeGen] match new fast-math-flag method: isFast()
This corresponds to LLVM commiti r317488:
If that commit is reverted, this commit will also need to be reverted.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317489
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 6 Nov 2017 12:11:51 +0000 (12:11 +0000)]
[clang-format] Handle unary operator overload with arguments and specifiers
Before:
int operator++(int)noexcept;
After:
int operator++(int) noexcept;
Patch by Igor Sugak. Thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317473
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Liu [Mon, 6 Nov 2017 09:29:09 +0000 (09:29 +0000)]
[Tooling] Test internal::createExecutorFromCommandLineArgsImpl instead of the wrapper.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317466
91177308-0d34-0410-b5e6-
96231b3b80d8
Jina Nahias [Mon, 6 Nov 2017 07:04:12 +0000 (07:04 +0000)]
lowering broadcastm
Change-Id: I0661abea3e3742860e0a03ff9e4fcdc367eff7db
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317456
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Sun, 5 Nov 2017 21:52:36 +0000 (21:52 +0000)]
Remove \brief from doxygen comments in PrettyPrinter.h
Patch by @xsga!
Differential Revision: https://reviews.llvm.org/D39633
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317443
91177308-0d34-0410-b5e6-
96231b3b80d8
Johannes Altmanninger [Sun, 5 Nov 2017 11:53:18 +0000 (11:53 +0000)]
[clang-diff] NFC: format
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317434
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Lebedev [Sat, 4 Nov 2017 20:27:47 +0000 (20:27 +0000)]
[Sema] Document+test the -Wsign-conversion change for enums in C code [NFC]
Basically a regression after r316268.
However the diagnostic is correct, but the test coverage is bad.
So just like rL316500, introduce yet more tests,
and adjust the release notes.
See https://bugs.llvm.org/show_bug.cgi?id=35200
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317421
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Sat, 4 Nov 2017 20:06:49 +0000 (20:06 +0000)]
Move the clang-tblgen-targets project into the Misc folder on IDEs like Visual Studio rather than leave it in the root directory. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317419
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Sat, 4 Nov 2017 20:06:22 +0000 (20:06 +0000)]
Move the clang-tblgen project into the Clang tablegenning folder on IDEs like Visual Studio rather than leave it in the root directory. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317418
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Sat, 4 Nov 2017 20:00:21 +0000 (20:00 +0000)]
Move the libclang-headers project into the Misc folder on IDEs like Visual Studio rather than leave it in the root directory. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317417
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 4 Nov 2017 15:03:11 +0000 (15:03 +0000)]
[CodeGen] add remquo to list of recognized library calls
This is just an oversight because we already do recognize __builtin_remquo()
with the same signature.
http://en.cppreference.com/w/c/numeric/math/remquo
http://pubs.opengroup.org/onlinepubs/
9699919799/functions/remquo.html
Differential Revision: https://reviews.llvm.org/D39615
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317407
91177308-0d34-0410-b5e6-
96231b3b80d8
Martell Malone [Sat, 4 Nov 2017 02:15:49 +0000 (02:15 +0000)]
CodeGenCXX: no default dllimport storage for mingw
GNU frontends don't have options like /MT, /MD
This fixes a few link error regressions with libc++ and libc++abi
Reviewers: rnk, mstorsjo, compnerd
Differential Revision: https://reviews.llvm.org/D33620
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317398
91177308-0d34-0410-b5e6-
96231b3b80d8
Martell Malone [Sat, 4 Nov 2017 02:07:59 +0000 (02:07 +0000)]
[Driver] MinGW: Remove custom linker detection
This is a re-apply of rL313082 which was reverted in rL313088
In rL289668 the ability to specify the default linker at compile time
was added but because the MinGW driver used custom detection we could
not take advantage of this new CMAKE flag CLANG_DEFAULT_LINKER.
rL289668 added no test cases and the mingw driver was either overlooked
or purposefully skipped because it has some custom linker tests
Removing them here because they are covered by the generic case.
Reviewers: rnk
Differntial Revision: https://reviews.llvm.org/D37727
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317397
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Sat, 4 Nov 2017 01:20:50 +0000 (01:20 +0000)]
Update ODR hashing tests
Add a mix of postive and negative tests to check that wrong Decls won't be
flagged in the diagnostic. Split the check everything test and moved the
pieces closer to where the related tests are.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317394
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Fri, 3 Nov 2017 22:35:27 +0000 (22:35 +0000)]
[Basic] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317381
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Fri, 3 Nov 2017 21:31:10 +0000 (21:31 +0000)]
Add -fcxx-exceptions for ExtractionSemicolonPolicy.cpp to appease PS4 bots
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317372
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Fri, 3 Nov 2017 20:09:17 +0000 (20:09 +0000)]
Replace a use of std::for_each() with llvm::for_each(); NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317359
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Fri, 3 Nov 2017 18:21:06 +0000 (18:21 +0000)]
Move Extract.cpp that wasn't moved in r317343
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317344
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Fri, 3 Nov 2017 18:11:22 +0000 (18:11 +0000)]
[refactor][extract] insert semicolons into extracted/inserted code
when needed
This commit implements the semicolon insertion logic into the extract
refactoring. The following rules are used:
- extracting expression: add terminating ';' to the extracted function.
- extracting statements that don't require terminating ';' (e.g. switch): add
terminating ';' to the callee.
- extracting statements with ';': move (if possible) the original ';' from the
callee and add terminating ';'.
- otherwise, add ';' to both places.
Differential Revision: https://reviews.llvm.org/D39441
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317343
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Kortchinsky [Fri, 3 Nov 2017 17:04:13 +0000 (17:04 +0000)]
[Driver] Add Scudo as a possible -fsanitize= option
Summary:
This change adds Scudo as a possible Sanitizer option via -fsanitize=.
This allows for easier static & shared linking of the Scudo library, it allows
us to enforce PIE (otherwise the security of the allocator is moot), and check
for incompatible Sanitizers combo.
In its current form, Scudo is not compatible with any other Sanitizer, but the
plan is to make it work in conjunction with UBsan (-fsanitize=scudo,undefined),
which will require additional work outside of the scope of this change.
Reviewers: eugenis, kcc, alekseyshl
Reviewed By: eugenis, alekseyshl
Subscribers: llvm-commits, srhines
Differential Revision: https://reviews.llvm.org/D39334
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317337
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 3 Nov 2017 16:27:27 +0000 (16:27 +0000)]
[CodeGen] add libcall attr tests to show errno-related diffs; NFC
See rL317220 for the builtin siblings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317336
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Liu [Fri, 3 Nov 2017 15:57:27 +0000 (15:57 +0000)]
[Tooling] Fix linking of StandaloneToolExecutorPlugin.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317332
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Liu [Fri, 3 Nov 2017 15:20:57 +0000 (15:20 +0000)]
[Tooling] Put createExecutorFromCommandLineArgs implementation in a wrapper. NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317328
91177308-0d34-0410-b5e6-
96231b3b80d8
Krasimir Georgiev [Fri, 3 Nov 2017 14:38:07 +0000 (14:38 +0000)]
[clang-format] Sort using-declarations case sensitively with a special case for '_'
Summary:
This makes clang-format sort using declarations case-sensitive with the
exception that '_' comes just before 'A'. This is better than the current case
insensitive version, because it groups uppercase names in the same namespace
together.
Reviewers: bkramer
Reviewed By: bkramer
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D39549
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317325
91177308-0d34-0410-b5e6-
96231b3b80d8
Erik Verbruggen [Fri, 3 Nov 2017 09:40:07 +0000 (09:40 +0000)]
[preamble] Also record the "skipping" state of the preprocessor
When a preamble ends in a conditional preprocessor block that is being
skipped, the preprocessor needs to continue skipping that block when
the preamble is used.
This fixes PR34570.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317308
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 3 Nov 2017 02:30:00 +0000 (02:30 +0000)]
[CUDA] Mark CUDA as a no-errno platform.
Summary:
CUDA doesn't support errno at all, so this is the right thing -- or at
least, in the right direction.
But also, this unbreaks the CUDA test-suite math tests [0] after D39481.
__cuda_cmath.h forwards nexttoward() to __builtin_nexttoward, which,
after that patch, was lowering to a libcall that doesn't exist in NVPTX.
[0] http://lab.llvm.org:8011/builders/clang-cuda-build/builds/14999
Reviewers: tra
Subscribers: sanjoy, cfe-commits
Differential Revision: https://reviews.llvm.org/D39586
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317297
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 3 Nov 2017 01:26:01 +0000 (01:26 +0000)]
[c++17] Visit class template explicit specializations just like all other class definitions in codegen.
If an explicit specialization has a static data member, it may be a definition and we may need to register it for emission.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317296
91177308-0d34-0410-b5e6-
96231b3b80d8
George Karpenkov [Fri, 3 Nov 2017 00:41:29 +0000 (00:41 +0000)]
[analyzer] [NFC] very minor ExprEngineC refactoring
Differential Revision: https://reviews.llvm.org/D39577
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317294
91177308-0d34-0410-b5e6-
96231b3b80d8
George Karpenkov [Fri, 3 Nov 2017 00:36:03 +0000 (00:36 +0000)]
[analyzer] do not crash on libcxx03 call_once implementation
Addresses https://bugs.llvm.org/show_bug.cgi?id=35075, rdar://
35230961
Differential Revision: https://reviews.llvm.org/D39518
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317293
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 2 Nov 2017 22:28:50 +0000 (22:28 +0000)]
Modular Codegen: Don't home always_inline functions
Since they'll likely (not always - if the address is taken, etc) be
inlined away, even at -O0, separately provided weak definitions are
likely to be unused so skip all of that.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317279
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 2 Nov 2017 21:55:40 +0000 (21:55 +0000)]
Modular Codegen: Don't home/modularize static functions in headers
Consistent with various workarounds in the backwards compatible modules
that allow static functions in headers to exist, be deduplicated to some
degree, and not generally fail right out of the gate... do the same with
modular codegen as there are enough cases (including in libstdc++ and in
LLVM itself - though I cleaned up the easy ones) that it's worth
supporting as a migration/backcompat step.
Simply create a separate, internal linkage function in each object that
needs it. If an available_externally/modularized function references a
static function, but the modularized function is eventually dropped and
not inlined, the static function will be dropped as unreferenced.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317274
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Thu, 2 Nov 2017 21:45:30 +0000 (21:45 +0000)]
[Serialization] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317273
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Thu, 2 Nov 2017 21:08:00 +0000 (21:08 +0000)]
Add default calling convention support for regcall.
Added support for regcall as default calling convention. Also added code to
exclude main when applying default calling conventions.
Patch-By: eandrews
Differential Revision: https://reviews.llvm.org/D39210
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317268
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 2 Nov 2017 20:39:26 +0000 (20:39 +0000)]
[CodeGen] fix const-ness of builtin equivalents of <math.h> and <complex.h> functions that might set errno
This just makes const-ness of the builtins match const-ness of their lib function siblings.
We're deferring fixing some of these that are obviously wrong to follow-up patches.
Hopefully, the bugs are visible in the new test file (added at rL317220).
As the description in Builtins.def says: "e = const, but only when -fmath-errno=0".
This is step 2 of N to fix builtins and math calls as discussed in D39204.
Differential Revision: https://reviews.llvm.org/D39481
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317265
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Thu, 2 Nov 2017 19:42:40 +0000 (19:42 +0000)]
revert r317228: remove unused function from ObjCRuntime.h, NFC
This function is actually used in LLDB
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317231
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Thu, 2 Nov 2017 19:01:34 +0000 (19:01 +0000)]
remove unused function from ObjCRuntime.h, NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317228
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Thu, 2 Nov 2017 18:55:05 +0000 (18:55 +0000)]
[OPENMP] Fix PR35152: Do not use getInvokeDest() function for EH checks.
The compiler may crash under some conditions if the getInvokeDest() is
used, but later it is not used. Fixed this problem in OpenMP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317227
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Thu, 2 Nov 2017 18:05:48 +0000 (18:05 +0000)]
[refactor][selection] canonicalize selected string literal to objc
string literal when possible
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317224
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 2 Nov 2017 17:06:05 +0000 (17:06 +0000)]
[CodeGen] add builtin attr tests to show errno-related diffs; NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317220
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Korous [Thu, 2 Nov 2017 16:37:00 +0000 (16:37 +0000)]
Fix comment typo
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317216
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Thu, 2 Nov 2017 14:25:34 +0000 (14:25 +0000)]
[OPENMP] Fix PR35156: Get correct thread id with windows exceptions.
If the thread id is requested in windows mode within funclets, we may
generate incorrect function call that could lead to broken codegen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317208
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Hahnfeld [Thu, 2 Nov 2017 13:30:42 +0000 (13:30 +0000)]
[OpenMP] Extend "Avoid VLAs for reduction" optimization to VLAs as base
We can generate constant sized arrays whenever the array section has constant
length, even if the base expression itself is a VLA.
Differential Revision: https://reviews.llvm.org/D39504
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317207
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Liu [Thu, 2 Nov 2017 12:48:48 +0000 (12:48 +0000)]
Fix clang-format CLion integration bug.
CLion's Sax parser threw this error:
Failed to parse clang-format XML replacements. Input: <?xml version='1.0'?>
<replacements xml:space='preserve' incomplete_format='true' line=89>
[...]
[org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 66; Open quote is expected for attribute "line" associated with an element type "replacements".]
Patch by Justine Tunney (jart@google.com)!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317205
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Korous [Thu, 2 Nov 2017 12:15:51 +0000 (12:15 +0000)]
Fix typo in class annotation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317200
91177308-0d34-0410-b5e6-
96231b3b80d8
Shoaib Meenai [Thu, 2 Nov 2017 05:04:00 +0000 (05:04 +0000)]
[libclang] Add dummy libclang-headers target
`LLVM_DISTRIBUTION_COMPONENTS` assumes that each component has both
`component` and `install-component` targets. Add a dummy no-op target
for `libclang-headers` to placate this check.
Differential Revision: https://reviews.llvm.org/D39524
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317188
91177308-0d34-0410-b5e6-
96231b3b80d8
Shoaib Meenai [Thu, 2 Nov 2017 01:11:40 +0000 (01:11 +0000)]
[clang-rename] Use add_clang_tool
`add_clang_tool` includes a call to `add_clang_executable`, but it also
sets up the install rule, and adds an `install-*` target. The latter is
required for using `LLVM_DISTRIBUTION_COMPONENTS`.
Differential Revision: https://reviews.llvm.org/D39522
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317150
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 2 Nov 2017 01:06:00 +0000 (01:06 +0000)]
PR33746: Store the 'inline'ness of a static data member with the update record
for instantiating its definition.
We model the 'inline'ness as being instantiated with the static data member in
order to track whether the declaration has become a definition yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317147
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Thu, 2 Nov 2017 00:25:40 +0000 (00:25 +0000)]
CodeGen: simplify EH personality selection (NFC)
Fix a typo in the comment, reorder to ensure that the ordering matches
across the ObjC/ObjC++ cases. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317146
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 1 Nov 2017 23:38:37 +0000 (23:38 +0000)]
Fix missing -Wregister warning when 'register' is applied to a function parameter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317140
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Wed, 1 Nov 2017 23:09:49 +0000 (23:09 +0000)]
[ASTMatchers] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317137
91177308-0d34-0410-b5e6-
96231b3b80d8
Krasimir Georgiev [Wed, 1 Nov 2017 18:20:41 +0000 (18:20 +0000)]
[clang-format] Make parseUnaryOperator non-recursive, NFCI
Summary:
This patch makes the implementation of parseUnaryOperator non-recursive. We had
a problem with a file starting with tens of thousands of +'es and -'es which
caused clang-format to stack overflow.
Reviewers: bkramer
Reviewed By: bkramer
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D39498
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317113
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 1 Nov 2017 13:47:55 +0000 (13:47 +0000)]
Fix warnings discovered by rL317076. [-Wunused-private-field]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317091
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 1 Nov 2017 13:47:48 +0000 (13:47 +0000)]
Reformat.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317089
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 1 Nov 2017 04:52:12 +0000 (04:52 +0000)]
Fix -Wunused-private-field to fire regardless of which implicit special members have been implicitly declared.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317076
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 1 Nov 2017 04:43:22 +0000 (04:43 +0000)]
clang/lib/Format/Format.cpp: Fix warnings introduced in rL316903. [-Wpedantic]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317075
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Wed, 1 Nov 2017 03:57:27 +0000 (03:57 +0000)]
Change assertion to quick exit from checking function.
Remove the assertion that could be triggered by invalid code. Replace it with
an early exit from the checking function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317073
91177308-0d34-0410-b5e6-
96231b3b80d8
George Karpenkov [Wed, 1 Nov 2017 02:29:04 +0000 (02:29 +0000)]
[analyzer] Removing unused stored field.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317070
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 1 Nov 2017 02:18:49 +0000 (02:18 +0000)]
[X86] Define i586 and pentium preprocessor defines for -march=lakemont to match GCC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317069
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 1 Nov 2017 01:37:11 +0000 (01:37 +0000)]
[c++17] Refine resolution of constructor / conversion function disambiguation.
Given a choice between a constructor call and a conversion function in C++17,
we prefer the constructor for direct-initialization and the conversion function
for copy-initialization, matching the behavior in C++14 and before. The
guaranteed copy elision rules were not intended to change the meaning of such
code (other than by removing unnecessary copy constructor calls).
This tweak will be raised with CWG.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317066
91177308-0d34-0410-b5e6-
96231b3b80d8
George Karpenkov [Wed, 1 Nov 2017 01:36:01 +0000 (01:36 +0000)]
[Analyzer] Use value storage for BodyFarm
Differential Revision: https://reviews.llvm.org/D39428
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317065
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Wed, 1 Nov 2017 01:12:56 +0000 (01:12 +0000)]
[refactor][extract] code extracted from inline method should be placed
in a function defined before the outer class
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317062
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Wed, 1 Nov 2017 00:20:55 +0000 (00:20 +0000)]
[refactor][extract] prohibit extraction of ObjC property setters
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317056
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Wed, 1 Nov 2017 00:07:12 +0000 (00:07 +0000)]
[refactor][selection] code ranges can be selected in objc methods
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317054
91177308-0d34-0410-b5e6-
96231b3b80d8
Wolfgang Pieb [Wed, 1 Nov 2017 00:01:20 +0000 (00:01 +0000)]
Making a couple of tests a bit more flexible wrt thunk mangling. Fixes checkin for r317047.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317053
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 31 Oct 2017 23:23:36 +0000 (23:23 +0000)]
Make helper function static. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317052
91177308-0d34-0410-b5e6-
96231b3b80d8
Wolfgang Pieb [Tue, 31 Oct 2017 22:49:48 +0000 (22:49 +0000)]
Fix for PR33930. Short-circuit metadata mapping when cloning a varargs thunk.
The cloning happens before all metadata nodes are resolved. Prevent the value
mapper from running into unresolved or temporary MD nodes.
Differential Revision: https://reviews.llvm.org/D39396
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317047
91177308-0d34-0410-b5e6-
96231b3b80d8
Vlad Tsyrklevich [Tue, 31 Oct 2017 22:39:44 +0000 (22:39 +0000)]
[CFI] Add CFI-icall pointer type generalization
Summary:
This change allows generalizing pointers in type signatures used for
cfi-icall by enabling the -fsanitize-cfi-icall-generalize-pointers flag.
This works by 1) emitting an additional generalized type signature
metadata node for functions and 2) llvm.type.test()ing for the
generalized type for translation units with the flag specified.
This flag is incompatible with -fsanitize-cfi-cross-dso because it would
require emitting twice as many type hashes which would increase artifact
size.
Reviewers: pcc, eugenis
Reviewed By: pcc
Subscribers: kcc
Differential Revision: https://reviews.llvm.org/D39358
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317044
91177308-0d34-0410-b5e6-
96231b3b80d8
Vitaly Buka [Tue, 31 Oct 2017 20:49:57 +0000 (20:49 +0000)]
[clang-fuzzer] Fix incremental builds of the fuzzer
Summary:
Don't use BUILD_IN_SOURCE keep git checkout clean
Don't forward CMAKE_GENERATOR as ExternalProject_Add should do it already
Reset UPDATE_COMMAND to avoid git checkout updates on each build
Reviewers: kcc, morehouse
Subscribers: cfe-commits, mgorny
Differential Revision: https://reviews.llvm.org/D39445
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317035
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 31 Oct 2017 20:29:22 +0000 (20:29 +0000)]
Fix usage of right shift operator in fold expressions
The right shift operator was not seen as a valid operator in a fold expression, which is PR32563.
Patch by Nicolas Lesser ("Blitz Rakete")!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317032
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 31 Oct 2017 20:19:39 +0000 (20:19 +0000)]
[CodeGen] map sqrt libcalls to llvm.sqrt when errno is not set
The LLVM sqrt intrinsic definition changed with:
D28797
...so we don't have to use any relaxed FP settings other than errno handling.
This patch sidesteps a question raised in PR27435:
https://bugs.llvm.org/show_bug.cgi?id=27435
Is a programmer using __builtin_sqrt() invoking the compiler's intrinsic definition of sqrt or the mathlib definition of sqrt?
But we have an answer now: the builtin should match the behavior of the libm function including errno handling.
Differential Revision: https://reviews.llvm.org/D39204
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317031
91177308-0d34-0410-b5e6-
96231b3b80d8
Ivan A. Kosarev [Tue, 31 Oct 2017 11:05:34 +0000 (11:05 +0000)]
[CodeGen] Propagate may-alias'ness of lvalues with TBAA info
This patch fixes various places in clang to propagate may-alias
TBAA access descriptors during construction of lvalues, thus
eliminating the need for the LValueBaseInfo::MayAlias flag.
This is part of D38126 reworked to be a separate patch to
simplify review.
Differential Revision: https://reviews.llvm.org/D39008
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316988
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Tue, 31 Oct 2017 01:28:17 +0000 (01:28 +0000)]
[refactor] select the entire DeclStmt if one ifs decls is selected
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316971
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Mon, 30 Oct 2017 22:55:11 +0000 (22:55 +0000)]
Typo correct the condition of 'do-while' before exiting its scope
rdar://
35172419
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316966
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 30 Oct 2017 22:38:20 +0000 (22:38 +0000)]
[modules] Retain multiple using-directives in the same scope even if they name the same namespace.
They might have different visibility, and thus discarding all but one of them
can result in rejecting valid code. Also fix name lookup to cope with multiple
using-directives being found that denote the same namespace, where some are not
visible -- don't cache an "already visited" state for a using-directive that we
didn't visit because it was hidden.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316965
91177308-0d34-0410-b5e6-
96231b3b80d8
George Karpenkov [Mon, 30 Oct 2017 22:31:57 +0000 (22:31 +0000)]
[analyzer] Use the same filename for the header and the implementation of BugReporterVisitor
Differential Revision: https://reviews.llvm.org/D37935
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316963
91177308-0d34-0410-b5e6-
96231b3b80d8
George Karpenkov [Mon, 30 Oct 2017 19:40:33 +0000 (19:40 +0000)]
[analyzer] [tests] Remove empty folders in reference results, do not store diffs.txt
Storing diffs.txt is now redundant, as we simply dump the CmpRuns output
to stdout (it is saved in CI and tends to be small).
Not generating those files enables us to remove empty folders, which
confuse git, as it would not add them with reference results.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316948
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 30 Oct 2017 18:06:18 +0000 (18:06 +0000)]
Undo accidental language mode change in this test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316936
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 30 Oct 2017 18:05:10 +0000 (18:05 +0000)]
Add a test to make sure that -Wdeprecated doesn't warn on use of 'throw()' in system headers (deprecated in C++17).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316935
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Horvath [Mon, 30 Oct 2017 17:06:42 +0000 (17:06 +0000)]
[analyzer] Left shifting a negative value is undefined
The analyzer did not return an UndefVal in case a negative value was left
shifted. I also altered the UndefResultChecker to emit a clear warning in this
case.
Differential Revision: https://reviews.llvm.org/D39423
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316924
91177308-0d34-0410-b5e6-
96231b3b80d8
Krasimir Georgiev [Mon, 30 Oct 2017 14:41:34 +0000 (14:41 +0000)]
[clang-format] Handle CRLF correctly when formatting escaped newlines
Subscribers: klimek
Differential Revision: https://reviews.llvm.org/D39420
Contributed by @peterbudai!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316910
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Mon, 30 Oct 2017 14:38:30 +0000 (14:38 +0000)]
CodeGen: Fix insertion position of addrspace cast for alloca
For non-zero alloca addr space, alloca is usually casted to default addr
space immediately.
For non-vla, alloca is inserted at AllocaInsertPt, therefore the addr
space cast should also be insterted at AllocaInsertPt. However,
for vla, alloca is inserted at the current insertion point of IRBuilder,
therefore the addr space cast should also inserted at the current
insertion point of IRBuilder.
Currently clang always insert addr space cast at AllocaInsertPt, which
causes invalid IR.
This patch fixes that.
Differential Revision: https://reviews.llvm.org/D39374
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316909
91177308-0d34-0410-b5e6-
96231b3b80d8
Krasimir Georgiev [Mon, 30 Oct 2017 14:30:14 +0000 (14:30 +0000)]
Keep MSVC2015 happy after r316903
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316906
91177308-0d34-0410-b5e6-
96231b3b80d8
Krasimir Georgiev [Mon, 30 Oct 2017 14:01:50 +0000 (14:01 +0000)]
[clang-format] Format raw string literals
Summary:
This patch adds raw string literal formatting.
Reviewers: djasper, klimek
Reviewed By: klimek
Subscribers: klimek, mgorny
Differential Revision: https://reviews.llvm.org/D35943
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316903
91177308-0d34-0410-b5e6-
96231b3b80d8