Csaba Dabis [Wed, 29 May 2019 20:13:29 +0000 (20:13 +0000)]
[analyzer] ConditionBRVisitor: Test 'add-pop-up-notes=false'
Summary: -
Reviewers: NoQ, alexfh
Reviewed By: alexfh
Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
mikhail.ramalho, Szelethus, donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D61060
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362023
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 20:06:09 +0000 (20:06 +0000)]
[analyzer] ConditionBRVisitor: Enhance to write out more information
Summary:
Add extra messages to the bug report to inform the user why the analyzer
`Taking true/false branch`.
Reviewers: NoQ, george.karpenkov
Reviewed By: NoQ
Subscribers: gerazo, gsd, dkrupp, whisperity, baloghadamsoftware, xazax.hun,
eraman, szepet, a.sidorin, mikhail.ramalho, Szelethus,
donat.nagy, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D53076
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362020
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 19:21:59 +0000 (19:21 +0000)]
[analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece
Summary:
This new piece is similar to our macro expansion printing in HTML reports:
On mouse-hover event it pops up on variables. Similar to note pieces it
supports `plist` diagnostics as well.
It is optional, on by default: `add-pop-up-notes=true`.
Extra: In HTML reports `background-color: LemonChiffon` was too light,
changed to `PaleGoldenRod`.
Reviewers: NoQ, alexfh
Reviewed By: NoQ
Subscribers: cfe-commits, gerazo, gsd, george.karpenkov, alexfh, xazax.hun,
baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho,
Szelethus, donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D60670
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362014
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Wed, 29 May 2019 19:13:29 +0000 (19:13 +0000)]
LLVM IR: update Clang tests for byval being a typed attribute.
Since byval is now a typed attribute it gets sorted slightly differently by
LLVM when the order of attributes is being canonicalized. This updates the few
Clang tests that depend on the old order.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362013
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 18:58:41 +0000 (18:58 +0000)]
[analyzer] print() JSONify chain: Generic stmt_id
Summary: Some environment create less statements so make them generic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362011
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Wed, 29 May 2019 18:49:31 +0000 (18:49 +0000)]
[analyzer] SATestBuild.py: Use driver for analyzing single-file tests.
Don't bother coming up with a -cc1 run-line ourselves.
This, in particular, gets rid of a macOS-specific code path.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362009
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 18:38:52 +0000 (18:38 +0000)]
[analyzer] print() JSONify: SVal implementation
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
Szelethus, donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62497
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362008
91177308-0d34-0410-b5e6-
96231b3b80d8
Haojian Wu [Wed, 29 May 2019 18:36:54 +0000 (18:36 +0000)]
Fix an unused-variable error.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362005
91177308-0d34-0410-b5e6-
96231b3b80d8
Thomas Lively [Wed, 29 May 2019 18:31:50 +0000 (18:31 +0000)]
[WebAssembly] Support VPtr sanitizer for Emscripten
Summary:
After https://github.com/emscripten-core/emscripten/pull/8651, Emscripten
supports the full UBSan runtime. This includes the VPtr sanitizer.
This diff allows clang to generate code that uses the VPtr sanitizer for
Emscripten.
Patch by Guanzhong Chen
Reviewers: tlively, aheejin
Reviewed By: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, sunfish, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62559
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362004
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 18:29:31 +0000 (18:29 +0000)]
[analyzer] print() JSONify: CFG implementation
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62496
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362003
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 18:21:14 +0000 (18:21 +0000)]
[analyzer] print() JSONify: Decl revision
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62495
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362002
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 18:17:18 +0000 (18:17 +0000)]
[analyzer][AST] print() JSONify: Stmt implementation
Summary:
This patch also adds a function called `JsonFormat()` which:
- Flattens the string so removes the new-lines.
- Escapes double quotes.
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62494
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362000
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 18:05:53 +0000 (18:05 +0000)]
[analyzer] print() JSONify: getNodeLabel implementation
Summary: This patch also rewrites the ProgramPoint printing.
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho,
donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62346
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361997
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Wed, 29 May 2019 17:49:30 +0000 (17:49 +0000)]
[Index] Compute correct symbol kind for variable templates
Summary:
The index library itself seems to never pass variable templates as
input, however clangd does.
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: jkorous, arphaman, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62579
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361996
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Liao [Wed, 29 May 2019 17:23:27 +0000 (17:23 +0000)]
[CUDA][HIP] Skip setting `externally_initialized` for static device variables.
Summary:
- By declaring device variables as `static`, we assume they won't be
addressable from the host side. Thus, no `externally_initialized` is
required.
Reviewers: yaxunl
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62603
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361994
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Wed, 29 May 2019 17:04:48 +0000 (17:04 +0000)]
Add curley brackets to case statement that declares a variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361992
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Ferrand [Wed, 29 May 2019 16:30:47 +0000 (16:30 +0000)]
[clang-format] Allow configuring list of function-like macros that resolve to a type
Summary:
Adds a `TypenameMacros` configuration option that causes certain identifiers to be handled in a way similar to `typeof()`.
This is enough to:
- Prevent misinterpreting declarations of pointers to such types as expressions (`STACK_OF(int) * foo` -> `STACK_OF(int) *foo`),
- Avoid surprising line breaks in variable/struct field declarations (`STACK_OF(int)\nfoo;` -> `STACK_OF(int) foo;`, see https://bugs.llvm.org/show_bug.cgi?id=30353).
Reviewers: Typz, krasimir, djasper
Reviewed By: Typz
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D57184
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361986
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Ferrand [Wed, 29 May 2019 16:22:43 +0000 (16:22 +0000)]
[NFC] clang-format: Use LLVM style in NamespaceEndCommentsFixerTest
As pointed out in https://reviews.llvm.org/D37813#inline-555026, the
code which is formatted does not match LLVM formatting style.
Technically this is not a problem since these tests bypass most of the
formatter, but it can be misleading.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361984
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 16:22:21 +0000 (16:22 +0000)]
[analyzer] print() JSONify: Program state implementation
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62087
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361983
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 16:02:33 +0000 (16:02 +0000)]
[analyzer] print() JSONify: Checker messages implementation
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62086
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361982
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 15:58:26 +0000 (15:58 +0000)]
[analyzer] print() JSONify: Constructing objects implementation
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62085
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361980
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 15:53:12 +0000 (15:53 +0000)]
[analyzer] print() JSONify: Type information implementation
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62083
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361979
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 15:43:26 +0000 (15:43 +0000)]
[analyzer] print() JSONify: Constraints implementation
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62082
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361978
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 15:36:58 +0000 (15:36 +0000)]
[analyzer] print() JSONify: Environment implementation
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62081
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361976
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Wed, 29 May 2019 15:32:17 +0000 (15:32 +0000)]
[CodeComplete] Add semicolon when completing patterns for 'static_assert' and 'typedef
This is a trivial follow-up to r360042, which added semicolons to other
pattern completions, so sending without review.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361974
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 15:25:19 +0000 (15:25 +0000)]
[analyzer] print() JSONify: Store implementation
Summary: -
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Reviewed By: NoQ
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy,
dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D61912
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361972
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Wed, 29 May 2019 14:59:32 +0000 (14:59 +0000)]
[mips] Check argument for __builtin_msa_ctcmsa / __builtin_msa_cfcmsa
The `__builtin_msa_ctcmsa` and `__builtin_msa_cfcmsa` builtins are mapped
to the `ctcmsa` and `cfcmsa` instructions respectively. While MSA
control registers have indexes in 0..7 range, the instructions accept
register index in 0..31 range [1].
[1] MIPS Architecture for Programmers Volume IV-j:
The MIPS64 SIMD Architecture Module
https://www.mips.com/?do-download=the-mips64-simd-architecture-module
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361967
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 29 May 2019 13:48:19 +0000 (13:48 +0000)]
clang-cl: Fix mangling of catchable types with names longer than 4kiB
The mangling used to contain the MD5 name of both the RTTI type
descriptor and the name of the copy ctor in MSVC2013, but it changed
to just the former in 2015. It looks like it changed back to the old
mangling in VS2017 version 15.7 and onwards, including VS2019 (version
16.0). VS2017 version 15.0 still has the VS2015 mangling. Versions
between 15.0 and 15.7 are't on godbolt. I found 15.4 (_MSC_VER 1911)
locally and that uses the 15.0 mangling still, but I didn't find 15.5 or
15.6, so I'm not sure where exactly it changed back.
Differential Revision: https://reviews.llvm.org/D62490
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361959
91177308-0d34-0410-b5e6-
96231b3b80d8
Yitzhak Mandelbaum [Wed, 29 May 2019 12:40:36 +0000 (12:40 +0000)]
[LibTooling] Add `before` and `after` selectors for selecting point-ranges relative to nodes.
Summary:
The `before` and `after` selectors allow users to specify a zero-length range --
a point -- at the relevant location in an AST-node's source. Point ranges can
be useful, for example, to insert a change using an API that takes a range to be
modified (e.g. `tooling::change()`).
Reviewers: ilya-biryukov
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62419
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361955
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Wed, 29 May 2019 10:11:14 +0000 (10:11 +0000)]
[Index] Correctly set symbol kind of IndirectFieldDecl
Summary: The kind has been 'unknown' before, now it is 'field'.
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: jkorous, arphaman, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62573
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361941
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Yung [Wed, 29 May 2019 09:20:01 +0000 (09:20 +0000)]
Fix test added in r361903 to work on Windows.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361937
91177308-0d34-0410-b5e6-
96231b3b80d8
Pengfei Wang [Wed, 29 May 2019 08:42:35 +0000 (08:42 +0000)]
[X86] Fix i386 struct and union parameter alignment
According to i386 System V ABI 2.1: Structures and unions assume the
alignment of their most strictly aligned component. But current
implementation always takes them as 4-byte aligned which will result
in incorrect code, e.g:
1 #include <immintrin.h>
2 typedef union {
3 int d[4];
4 __m128 m;
5 } M128;
6 extern void foo(int, ...);
7 void test(void)
8 {
9 M128 a;
10 foo(1, a);
11 foo(1, a.m);
12 }
The first call (line 10) takes the second arg as 4-byte aligned while
the second call (line 11) takes the second arg as 16-byte aligned.
There is oxymoron for the alignment of the 2 calls because they should
be the same.
This patch fixes the bug by following i386 System V ABI and apply it to
Linux only since other System V OS (e.g Darwin, PS4 and FreeBSD) don't
want to spend any effort dealing with the ramifications of ABI breaks
at present.
Patch by Wei Xiao (wxiao3)
Differential Revision: https://reviews.llvm.org/D60748
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361934
91177308-0d34-0410-b5e6-
96231b3b80d8
Zi Xuan Wu [Wed, 29 May 2019 07:09:54 +0000 (07:09 +0000)]
revert rC361928: [PowerPC] [Clang] Port SSE intrinsics to PowerPC
Because test fails in other targets rather than PowerPC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361930
91177308-0d34-0410-b5e6-
96231b3b80d8
Zi Xuan Wu [Wed, 29 May 2019 05:17:03 +0000 (05:17 +0000)]
[PowerPC] [Clang] Port SSE intrinsics to PowerPC
Port xmmintrin.h which include Intel SSE intrinsics implementation to PowerPC platform (using Altivec).
The new headers containing those implemenations are located into a directory named ppc_wrappers
which has higher priority when the platform is PowerPC on Linux. They are mainly developed by Steven Munroe,
with contributions from Paul Clarke, Bill Schmidt, Jinsong Ji and Zixuan Wu.
Patched by: Qiu Chaofan <qiucf@cn.ibm.com>
Reviewed By: Jinsong Ji
Differential Revision: https://reviews.llvm.org/D62121
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361928
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Fiselier [Wed, 29 May 2019 03:15:36 +0000 (03:15 +0000)]
Make __has_builtin work with __builtin_LINE and friends.
The source location builtins are implemented as keywords, but
__has_builtin should still report true for them.
This patch also fixes a test failure on systemz where the alignment
of string literals is 2 not 1.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361920
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Wed, 29 May 2019 01:34:44 +0000 (01:34 +0000)]
Fix failure of lit test dependent-libs.cu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361905
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Wed, 29 May 2019 00:01:05 +0000 (00:01 +0000)]
[Driver] Search the toolchain dir with -print-file-name
This is useful when looking for directories or files relative to the
toolchain root, e.g. include/c++/v1. This change also adds a test
to make sure this functionality doesn't regress in the future.
Differential Revision: https://reviews.llvm.org/D62558
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361903
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 28 May 2019 23:26:22 +0000 (23:26 +0000)]
[X86] Fix the Sema checks for getmant builtins to only allow 4 and 8 for rounding immediates.
These don't support embedded rounding so we shouldn't be setting HasRC. That way we only
allow current direction and suppress all exceptions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361897
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 28 May 2019 23:20:52 +0000 (23:20 +0000)]
Fix r361893 to also update a recently-added test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361895
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 28 May 2019 23:09:46 +0000 (23:09 +0000)]
Defer creating fields for captures until we finish building the
capturing expression or statement.
No functionality change yet. The intent is that we will also delay
building the initialization expression until the enclosing context, so
that:
a) we build the initialization expression in the right context, and
b) we can elide captures that are not odr-used, as suggested by P0588R1.
This also consolidates some duplicated code building capture fields into
a single place.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361893
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 28 May 2019 23:09:45 +0000 (23:09 +0000)]
Simplify clang::Capture. No functionality change intended.
We don't need to pack flags into the bottom bits of pointers here; we
have plenty of trailing bits in this type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361892
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 28 May 2019 23:09:44 +0000 (23:09 +0000)]
If capturing a variable fails, add a capture anyway (and mark it
invalid) so that we can avoid repeated diagnostics for the same capture.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361891
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 28 May 2019 23:09:42 +0000 (23:09 +0000)]
Move code to mark a variable as odr-used adjacement to all the related
code.
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361890
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Tue, 28 May 2019 22:21:47 +0000 (22:21 +0000)]
[Driver] Fix -working-directory issues
Currently the `-working-directory` option does not actually impact the working
directory for all of the clang driver, it only impacts how files are looked up
to make sure they exist. This means that that clang passes the wrong paths
to -fdebug-compilation-dir and -coverage-notes-file.
This patch fixes that by changing all the places in the driver where we convert
to absolute paths to use the VFS, and then calling setCurrentWorkingDirectory on
the VFS. This also changes the default VFS for `Driver` to use a virtualized
working directory, instead of changing the process's working directory.
Differential Revision: https://reviews.llvm.org/D62271
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361885
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Tue, 28 May 2019 21:18:59 +0000 (21:18 +0000)]
[CUDA][HIP] Emit dependent libs for host only
Recently D60274 was introduced to allow lld to handle dependent libs. However current
usage of dependent libs (e.g. pragma comment(lib, *) in windows header files) are intended
for host only. Emitting the metadata in device IR causes link error in device path.
Until there is a way to different it dependent libs for device or host, metadata for dependent
libs should be emitted for host only. This patch enforces that.
Differential Revision: https://reviews.llvm.org/D62483
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361880
91177308-0d34-0410-b5e6-
96231b3b80d8
Adhemerval Zanella [Tue, 28 May 2019 21:16:04 +0000 (21:16 +0000)]
[clang] Handle lrint/llrint builtins
As for other floating-point rounding builtins that can be optimized
when build with -fno-math-errno, this patch adds support for lrint
and llrint. It currently only optimize for AArch64 backend.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D62019
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361878
91177308-0d34-0410-b5e6-
96231b3b80d8
Joel E. Denny [Tue, 28 May 2019 19:27:19 +0000 (19:27 +0000)]
[OpenMP] Set pragma start loc to `#pragma` loc
This patch adjusts `PragmaOpenMPHandler` to set the location of
`tok::annot_pragma_openmp` to the `#pragma` location instead of the
`omp` location so that the former becomes the start location of the
OpenMP AST node. This can be useful when, for example, rewriting a
directive using Clang's Rewrite facility. Most of this patch updates
tests for changes to locations in diagnostics and `-ast-dump` output.
Reviewed By: ABataev, lebedev.ri, Meinersbur, aaron.ballman
Differential Revision: https://reviews.llvm.org/D61509
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361867
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Tue, 28 May 2019 18:26:00 +0000 (18:26 +0000)]
Driver: support `/Zc:char8_t` and `/Zc:char8_t-`
Update the `cl` emulation to support the `/Zc:char8_t[-]?` options as per the
MSVC 2019.1 toolset. These are aliases for `-fchar8_t` and `-fno-char8_t`.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361859
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Tatham [Tue, 28 May 2019 16:13:20 +0000 (16:13 +0000)]
[ARM] Replace fp-only-sp and d16 with fp64 and d32.
Those two subtarget features were awkward because their semantics are
reversed: each one indicates the _lack_ of support for something in
the architecture, rather than the presence. As a consequence, you
don't get the behavior you want if you combine two sets of feature
bits.
Each SubtargetFeature for an FP architecture version now comes in four
versions, one for each combination of those options. So you can still
say (for example) '+vfp2' in a feature string and it will mean what
it's always meant, but there's a new string '+vfp2d16sp' meaning the
version without those extra options.
A lot of this change is just mechanically replacing positive checks
for the old features with negative checks for the new ones. But one
more interesting change is that I've rearranged getFPUFeatures() so
that the main FPU feature is appended to the output list *before*
rather than after the features derived from the Restriction field, so
that -fp64 and -d32 can override defaults added by the main feature.
Reviewers: dmgreen, samparker, SjoerdMeijer
Subscribers: srhines, javed.absar, eraman, kristof.beyls, hiraditya, zzheng, Petar.Avramovic, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D60691
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361845
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Tue, 28 May 2019 15:21:03 +0000 (15:21 +0000)]
[CodeComplete] Set preferred type for qualified-id
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62514
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361838
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Tue, 28 May 2019 14:33:16 +0000 (14:33 +0000)]
[CodeComplete] Consistently break after '{' in multi-line patterns
Summary:
Completion can return multi-line patterns in some cases, e.g.
for (<#init#>; <#cond#>; <#inc#>) {
<#body#>
}
However, most patterns break the line only before closing brace,
resulting in code like:
namespace <#name#> { <#decls#>
}
While some (e.g. the 'for' example above) are breaking lines after the
opening brace too.
This change ensures all patterns consistently break after the opening
brace, this leads to nicer UX when using those in an actual editor.
Reviewers: gribozavr
Reviewed By: gribozavr
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62405
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361829
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 28 May 2019 14:04:48 +0000 (14:04 +0000)]
Add release note entries for recent typo correction changes
Differential Revision: https://reviews.llvm.org/D62523
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361824
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Balogh [Tue, 28 May 2019 13:07:09 +0000 (13:07 +0000)]
[Analyzer] Replace `CXXSelfAssignmentBRVisitor` with `NoteTags`
The `cplusplus.SelfAssignment` checker has a visitor that is added
to every `BugReport` to mark the to branch of the self assignment
operator with e.g. `rhs == *this` and `rhs != *this`. With the new
`NoteTag` feature this visitor is not needed anymore. Instead the
checker itself marks the two branches using the `NoteTag`s.
Differential Revision: https://reviews.llvm.org/D62479
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361818
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 28 May 2019 12:19:38 +0000 (12:19 +0000)]
Re-commit r357452 (take 2): "SimplifyCFG SinkCommonCodeFromPredecessors: Also sink function calls without used results (PR41259)"
This was reverted in r360086 as it was supected of causing mysterious test
failures internally. However, it was never concluded that this patch was the
root cause.
> The code was previously checking that candidates for sinking had exactly
> one use or were a store instruction (which can't have uses). This meant
> we could sink call instructions only if they had a use.
>
> That limitation seemed a bit arbitrary, so this patch changes it to
> "instruction has zero or one use" which seems more natural and removes
> the need to special-case stores.
>
> Differential revision: https://reviews.llvm.org/D59936
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361811
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Tue, 28 May 2019 06:38:16 +0000 (06:38 +0000)]
Revert [test] Fix plugin tests
This reverts r361790 (git commit
fe5eaab2b5b4523886bd63aebcfea8cfce586fa1)
It's causing buildbot breakage, so reverting while I investigate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361793
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Tue, 28 May 2019 06:26:58 +0000 (06:26 +0000)]
[test] Fix plugin tests
Summary:
The following changes were required to fix these tests:
1) Change LLVM_ENABLE_PLUGINS to an option and move it to
llvm/CMakeLists.txt with an appropriate default -- which matches
the original default behavior.
2) Move the plugins directory from clang/test/Analysis
clang/lib/Analysis. It's not enough to add an exclude to the
lit.local.cfg file because add_lit_testsuites recurses the tree and
automatically adds the appropriate `check-` targets, which don't
make sense for the plugins because they aren't tests and don't
have `RUN` statements.
Here's a list of the `clang-check-anlysis*` targets with this
change:
```
$ ninja -t targets all| sed -n "s/.*\/\(check[^:]*\):.*/\1/p" | sort -u | grep clang-analysis
check-clang-analysis
check-clang-analysis-checkers
check-clang-analysis-copypaste
check-clang-analysis-diagnostics
check-clang-analysis-engine
check-clang-analysis-exploration_order
check-clang-analysis-html_diagnostics
check-clang-analysis-html_diagnostics-relevant_lines
check-clang-analysis-inlining
check-clang-analysis-objc
check-clang-analysis-unified-sources
check-clang-analysis-z3
```
3) Simplify the logic and only include the subdirectories under
clang/lib/Analysis/plugins if LLVM_ENABLE_PLUGINS is set.
Reviewed By: NoQ
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D62445
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361790
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Mon, 27 May 2019 23:23:50 +0000 (23:23 +0000)]
[Driver] Change layout of per-target runtimes to resemble multiarch
This is a follow up to r361432, changing the layout of per-target
runtimes to more closely resemble multiarch. While before, we used
the following layout:
[RESOURCE_DIR]/<target>/lib/libclang_rt.<runtime>.<ext>
Now we use the following layout:
[RESOURCE_DIR]/lib/<target>/libclang_rt.<runtime>.<ext>
This also more closely resembles the existing "non-per-target" layout:
[RESOURCE_DIR]/lib/<os>/libclang_rt.<runtime>-<arch>.<ext>
This change will enable further simplification of the driver logic
in follow up changes.
Differential Revision: https://reviews.llvm.org/D62469
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361784
91177308-0d34-0410-b5e6-
96231b3b80d8
Volodymyr Sapsai [Mon, 27 May 2019 19:15:30 +0000 (19:15 +0000)]
[Preprocessor] Fix crash emitting note with framework location for "file not found" error.
A filename can be remapped with a header map to point to a framework
header and we can find the corresponding framework without the header.
But if the original filename doesn't have a remapped framework name,
we'll fail to find its location and will dereference a null pointer
during diagnostics emission.
Fix by tracking remappings better and emit the note only if a framework
is found before any of the remappings.
rdar://problem/
48883447
Reviewers: arphaman, erik.pilkington, jkorous
Reviewed By: arphaman
Subscribers: dexonsmith, cfe-commits
Differential Revision: https://reviews.llvm.org/D61707
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361779
91177308-0d34-0410-b5e6-
96231b3b80d8
Kadir Cetinkaya [Mon, 27 May 2019 16:20:45 +0000 (16:20 +0000)]
[clang] Respect TerseOutput when printing lambdas
Reviewers: ilya-biryukov, hokein, sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62487
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361771
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 27 May 2019 14:34:31 +0000 (14:34 +0000)]
When dumping the AST to JSON, dump the type information from a typeid expression with a type operand.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361769
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 27 May 2019 14:29:10 +0000 (14:29 +0000)]
When dumping the AST to JSON, dump whether a function is variadic or not.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361768
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 27 May 2019 14:25:04 +0000 (14:25 +0000)]
When dumping the AST to JSON, dump the declared name of a MemberExpr operand.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361767
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 27 May 2019 14:17:32 +0000 (14:17 +0000)]
When dumping the AST to JSON, dump the argument name to a sizeof pack expression.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361766
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 27 May 2019 14:12:48 +0000 (14:12 +0000)]
Add test cases for dumping AST expression nodes to JSON; NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361764
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Mon, 27 May 2019 11:19:07 +0000 (11:19 +0000)]
[OpenCL] Fix file-scope const sampler variable for 2.0
OpenCL spec v2.0 s6.13.14:
Samplers can also be declared as global constants in the program
source using the following syntax.
const sampler_t <sampler name> = <value>
This works fine for OpenCL 1.2 but fails for 2.0, because clang duduces
address space of file-scope const sampler variable to be in global address
space whereas spec v2.0 s6.9.b forbids file-scope sampler variable to be
in global address space.
The fix is not to deduce address space for file-scope sampler variables.
Differential Revision: https://reviews.llvm.org/D62197
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361757
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Mon, 27 May 2019 09:52:09 +0000 (09:52 +0000)]
[CodeComplete] Complete 'return true/false' in boolean functions
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62391
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361753
91177308-0d34-0410-b5e6-
96231b3b80d8
Balazs Keri [Mon, 27 May 2019 09:36:00 +0000 (09:36 +0000)]
[ASTImporter] Added visibility context check for CXXRecordDecl.
Summary:
ASTImporter makes now difference between classes with same name in different
translation units if these are not visible outside. These classes are not linked
into one decl chain.
Reviewers: martong, a.sidorin, shafik
Reviewed By: shafik
Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62312
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361752
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Sun, 26 May 2019 07:43:45 +0000 (07:43 +0000)]
[Driver][RISCV] Simplify. NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361710
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Sun, 26 May 2019 03:39:07 +0000 (03:39 +0000)]
[Driver] Update handling of c++ and runtime directories
This is a follow up to r361432 and r361504 which addresses issues
introduced by those changes. Specifically, it avoids duplicating
file and runtime paths in case when the effective triple is the
same as the cannonical one. Furthermore, it fixes the broken multilib
setup in the Fuchsia driver and deduplicates some of the code.
Differential Revision: https://reviews.llvm.org/D62442
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361709
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 25 May 2019 22:38:02 +0000 (22:38 +0000)]
Add missing newline at end of file
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361708
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sat, 25 May 2019 01:04:17 +0000 (01:04 +0000)]
Permit static local structured bindings to be named from arbitrary scopes inside their declaring scope.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361686
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Sat, 25 May 2019 00:50:03 +0000 (00:50 +0000)]
Revert "[Analysis] Link library dependencies to Analysis plugins"
This reverts commit r361340. The following builder has been broken for
the past few days because of this commit:
http://green.lab.llvm.org/green/job/clang-stage2-cmake-RgSan/
Also revert r361399, which was committed to fix r361340.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361685
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Sat, 25 May 2019 00:27:19 +0000 (00:27 +0000)]
Rename clangToolingRefactor to clangToolingRefactoring for consistency with its directory
See "[cfe-dev] The name of clang/lib/Tooling/Refactoring".
Differential Revision: https://reviews.llvm.org/D62420
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361684
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Fri, 24 May 2019 23:37:11 +0000 (23:37 +0000)]
[analyzer] Add a prunable note for skipping vbase inits in subclasses.
When initialization of virtual base classes is skipped, we now tell the user
about it, because this aspect of C++ isn't very well-known.
The implementation is based on the new "note tags" feature (r358781).
In order to make use of it, allow note tags to produce prunable notes,
and move the note tag factory to CoreEngine.
Differential Revision: https://reviews.llvm.org/D61817
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361682
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Fri, 24 May 2019 23:37:08 +0000 (23:37 +0000)]
[CFG] Add branch to skip vbase inits when they're handled by superclass.
This patch adds the run-time CFG branch that would skip initialization of
virtual base classes depending on whether the constructor is called from a
superclass constructor or not. Previously the Static Analyzer was already
skipping virtual base-class initializers in such constructors, but it wasn't
skipping their arguments and their potential side effects, which was causing
pr41300 (and was generally incorrect). The previous skipping behavior is
now replaced with a hard assertion that we're not even getting there due
to how our CFG works.
The new CFG element is under a CFG build option so that not to break other
consumers of the CFG by this change. Static Analyzer support for this change
is implemented.
Differential Revision: https://reviews.llvm.org/D61816
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361681
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 24 May 2019 23:26:07 +0000 (23:26 +0000)]
Fix crash deserializing a CUDAKernelCallExpr with a +Asserts binary.
The assertion in setConfig read from the (uninitialized) CONFIG
expression.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361680
91177308-0d34-0410-b5e6-
96231b3b80d8
Alina Sbirlea [Fri, 24 May 2019 21:49:27 +0000 (21:49 +0000)]
Mark tests as x86.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361674
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 24 May 2019 21:08:12 +0000 (21:08 +0000)]
Default arguments are potentially constant evaluated.
We need to eagerly instantiate constexpr functions used in them even if
the default argument is never actually used, because we might evaluate
portions of it when performing semantic checks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361670
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 24 May 2019 20:42:25 +0000 (20:42 +0000)]
Refactor use-marking to better match standard terminology. No
functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361668
91177308-0d34-0410-b5e6-
96231b3b80d8
Mandeep Singh Grang [Fri, 24 May 2019 19:24:08 +0000 (19:24 +0000)]
[Analyzer] Checker for non-determinism caused by iteration of unordered container of pointers
Summary: Added a checker for non-determinism caused by iterating unordered containers like std::unordered_set containing pointer elements.
Reviewers: NoQ, george.karpenkov, whisperity, Szelethus, baloghadamsoftware
Reviewed By: Szelethus
Subscribers: mgorny, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, jdoerfert, Charusso, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D59279
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361664
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Fri, 24 May 2019 19:21:21 +0000 (19:21 +0000)]
[cmake] Remove old unused version of FindZ3.cmake from clang [NFC]
Summary: This file was moved to llvm in D54978, r356929, but the old
file was never removed.
Reviewed By: beanz
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62343
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361663
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Fri, 24 May 2019 19:19:00 +0000 (19:19 +0000)]
Adding an explicit triple to this test to appease build bots.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361662
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Fri, 24 May 2019 18:58:29 +0000 (18:58 +0000)]
Add JSON dumping tests for ObjC statements; add support for dumping @catch catch-all statements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361660
91177308-0d34-0410-b5e6-
96231b3b80d8
Gheorghe-Teodor Bercea [Fri, 24 May 2019 18:48:42 +0000 (18:48 +0000)]
[OpenMP] Add test for requires and unified shared memory clause with declare target link
Summary:
This patch adds a test for requires with unified share memory clause when a declare target link is present.
This test needs to go in prior to changes to declare target link for comparison purposes.
Reviewers: ABataev, caomhin
Reviewed By: ABataev
Subscribers: guansong, jdoerfert, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62407
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361658
91177308-0d34-0410-b5e6-
96231b3b80d8
Alina Sbirlea [Fri, 24 May 2019 17:40:52 +0000 (17:40 +0000)]
[NewPassManager] Add tuning option: LoopUnrolling [clang-change]
Summary:
Use CodeGenOpts's setting for loop unrolling.
[to be coupled with D61618]
Reviewers: chandlerc
Subscribers: jlebar, dmgreen, cfe-commits, llvm-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D61620
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361653
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Fri, 24 May 2019 17:39:55 +0000 (17:39 +0000)]
Add support for dumping Objective C AST declaration nodes to JSON.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361652
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Fri, 24 May 2019 17:36:07 +0000 (17:36 +0000)]
[WebAssembly] Use "linker" as linker shortname.
This is in line with other platforms.
Also, move the single statement methods into the header (also
in line with other platform).
Differential Revision: https://reviews.llvm.org/D62406
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361651
91177308-0d34-0410-b5e6-
96231b3b80d8
Shafik Yaghmour [Fri, 24 May 2019 16:53:44 +0000 (16:53 +0000)]
[ASTImporter] Call to HandleNameConflict in VisitRecordDecl mistakeningly using Name instead of SearchName
Summary:
https://reviews.llvm.org/D51633 added error handling to the ASTNodeImporter::VisitRecordDecl for the conflicting names case. This could lead to erroneous return of an error in that case since we should have been using SearchName. Name may be empty in the case where we find the name via D->getTypedefNameForAnonDecl()->getDeclName().
This fix is very similar to https://reviews.llvm.org/D59665
Differential Revision: https://reviews.llvm.org/D62352
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361650
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Fri, 24 May 2019 16:16:15 +0000 (16:16 +0000)]
[CodeComplete] Add whitespace around braces in lambda completions
This produces nicer output.
Trivial follow-up to r361461, so sending without review.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361645
91177308-0d34-0410-b5e6-
96231b3b80d8
Yitzhak Mandelbaum [Fri, 24 May 2019 15:11:45 +0000 (15:11 +0000)]
[LibTooling] Add Explanation parameter to `makeRule`.
Summary:
Conceptually, a single-case RewriteRule has a matcher, edit(s) and an (optional)
explanation. `makeRule` previously only took the matcher and edit(s). This
change adds (optional) support for the explanation.
Reviewers: ilya-biryukov
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62390
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361643
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Petit [Fri, 24 May 2019 14:53:52 +0000 (14:53 +0000)]
[OpenCL] Add support for the cl_arm_integer_dot_product extensions
The specification is available in the Khronos OpenCL registry:
https://www.khronos.org/registry/OpenCL/extensions/arm/cl_arm_integer_dot_product.txt
Signed-off-by: Kevin Petit <kevin.petit@arm.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361641
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Fri, 24 May 2019 10:18:39 +0000 (10:18 +0000)]
[CodeComplete] Filter override completions by function name
Summary:
We put only part of the signature starting with a function name into "typed text"
chunks now, previously the whole signature was "typed text".
This leads to meaningful fuzzy match scores, giving better signals to
compare with other completion items.
Ideally, we would not display the result type to the user, but that requires adding
a new kind of completion chunk.
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: jkorous, arphaman, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62298
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361623
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Kudrin [Fri, 24 May 2019 04:46:22 +0000 (04:46 +0000)]
Do not resolve directory junctions for `-fdiagnostics-absolute-paths` on Windows.
If the source file path contains directory junctions, and we resolve them when
printing diagnostic messages, these paths look independent for an IDE.
For example, both Visual Studio and Visual Studio Code open separate editors
for such paths, which is not only inconvenient but might even result in losing
changes made in one of them.
Differential Revision: https://reviews.llvm.org/D59415
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361598
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Fri, 24 May 2019 02:29:18 +0000 (02:29 +0000)]
[analyzer] NFC: Prevent multi-file plist test from spamming up the build folder.
It was producing an HTML report with a random name on every tests run
and never cleaned those up.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361592
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 24 May 2019 01:35:07 +0000 (01:35 +0000)]
Factor out repeated code to build 'this' expressions and mark them
referenced.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361588
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Fri, 24 May 2019 01:34:26 +0000 (01:34 +0000)]
[CFG] NFC: Modernize a test file for constructor initializer CFGs.
Move FileCheck directives around so that it was easy to understand
what tests what and what effect do changes have.
Differential Revision: https://reviews.llvm.org/D61815
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361587
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Fri, 24 May 2019 01:34:22 +0000 (01:34 +0000)]
[CFG] NFC: Remove implicit conversion from CFGTerminator to Stmt *.
Turn it into a variant class instead. This conversion does indeed save some code
but there's a plan to add support for more kinds of terminators that aren't
necessarily based on statements, and with those in mind it becomes more and more
confusing to have CFGTerminators implicitly convertible to a Stmt *.
Differential Revision: https://reviews.llvm.org/D61814
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361586
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Fiselier [Thu, 23 May 2019 23:34:43 +0000 (23:34 +0000)]
Fix hang during constant evaluation of union assignment.
HandleUnionActiveMemberChange forgot to walk over a nop implicit
conversion node and got stuck in the process.
As a cleanup I changed the declaration of `E` so it can't
be accidentally accessed after the loop.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361571
91177308-0d34-0410-b5e6-
96231b3b80d8
Kristof Umann [Thu, 23 May 2019 22:52:09 +0000 (22:52 +0000)]
[analyzer] List checker/plugin options in 3 categories: released, alpha, developer
Same patch as D62093, but for checker/plugin options, the only
difference being that options for alpha checkers are implicitly marked
as alpha.
Differential Revision: https://reviews.llvm.org/D62093
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361566
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Thu, 23 May 2019 22:30:43 +0000 (22:30 +0000)]
[OPENMP]Do not crash for const firstprivates.
If the variable is a firstprivate variable and it was not emitted beause
this a constant variable with the constant initializer, we can use the
initial value instead of the variable itself. It also fixes the problem
with the compiler crash in this case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361564
91177308-0d34-0410-b5e6-
96231b3b80d8