Jennifer Yu [Mon, 3 Jun 2019 15:57:25 +0000 (15:57 +0000)]
Re-check in clang support gun asm goto after fixing tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362410
91177308-0d34-0410-b5e6-
96231b3b80d8
Anastasia Stulova [Mon, 3 Jun 2019 15:42:36 +0000 (15:42 +0000)]
[PR41567][Sema] Fixed cast kind in addr space conversions
This change sets missing cast kind correctly in the address
space conversion case.
Differential Revision: https://reviews.llvm.org/D62299
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362409
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Savonichev [Mon, 3 Jun 2019 13:02:43 +0000 (13:02 +0000)]
[OpenCL] Undefine cl_intel_planar_yuv extension
Summary:
Remove unnecessary definition (otherwise the extension will be defined
where it's not supposed to be defined).
Consider the code:
#pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
// some declarations
#pragma OPENCL EXTENSION cl_intel_planar_yuv : end
is enough for extension to become known for clang.
Patch by: Dmitry Sidorov <dmitry.sidorov@intel.com>
Reviewers: Anastasia, yaxunl
Reviewed By: Anastasia
Tags: #clang
Differential Revision: https://reviews.llvm.org/D58666
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362398
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Savonichev [Mon, 3 Jun 2019 12:34:59 +0000 (12:34 +0000)]
[OpenCL] Use long instead of long long in x86 builtins
Summary: According to C99 standard long long is at least 64 bits in
size. However, OpenCL C defines long long as 128 bit signed
integer. This prevents one to use x86 builtins when compiling OpenCL C
code for x86 targets. The patch changes long long to long for OpenCL
only.
Patch by: Alexander Batashev <alexander.batashev@intel.com>
Reviewers: craig.topper, Ka-Ka, eandrews, erichkeane, Anastasia
Reviewed By: Ka-Ka, erichkeane, Anastasia
Subscribers: a.elovikov, yaxunl, Anastasia, cfe-commits, ivankara, etyurin, asavonic
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62580
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362391
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Tatham [Mon, 3 Jun 2019 11:02:53 +0000 (11:02 +0000)]
[ARM] Fix recent breakage of -mfpu=none.
The recent change D60691 introduced a bug in clang when handling
option combinations such as `-mcpu=cortex-m4 -mfpu=none`. Those
options together should select Cortex-M4 but disable all use of
hardware FP, but in fact, now hardware FP instructions can still be
generated in that mode.
The reason is because the handling of FPUVersion::NONE disables all
the same feature names it used to, of which the base one is `vfp2`.
But now there are further features below that, like `vfp2d16fp` and
(following D60694) `fpregs`, which also need to be turned off to
disable hardware FP completely.
Added a tiny test which double-checks that compiling a simple FP
function doesn't access the FP registers.
Reviewers: SjoerdMeijer, dmgreen
Reviewed By: dmgreen
Subscribers: lebedev.ri, javed.absar, kristof.beyls, hiraditya, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D62729
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362380
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikael Holmen [Mon, 3 Jun 2019 10:50:41 +0000 (10:50 +0000)]
Fix compilation warning about unused variable [NFC]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362379
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 3 Jun 2019 09:56:09 +0000 (09:56 +0000)]
Revert rL362358 : PR42104: Support instantiations of lambdas that implicitly capture packs.
Two changes:
* Track odr-use via FunctionParmPackExprs to properly handle dependent
odr-uses of packs in generic lambdas.
* Do not instantiate implicit captures; instead, regenerate them by
instantiating the body of the lambda. This is necessary to
distinguish between cases where only one element of a pack is
captured and cases where the entire pack is captured.
........
Fixes http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win buildbot failures
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362375
91177308-0d34-0410-b5e6-
96231b3b80d8
Sven van Haastregt [Mon, 3 Jun 2019 09:39:11 +0000 (09:39 +0000)]
[OpenCL] Declare builtin functions using TableGen
This patch adds a `-fdeclare-opencl-builtins` command line option to
the clang frontend. This enables clang to verify OpenCL C builtin
function declarations using a fast StringMatcher lookup, instead of
including the opencl-c.h file with the `-finclude-default-header`
option. This avoids the large parse time penalty of the header file.
This commit only adds the basic infrastructure and some of the OpenCL
builtins. It does not cover all builtins defined by the various OpenCL
specifications. As such, it is not a replacement for
`-finclude-default-header` yet.
RFC: http://lists.llvm.org/pipermail/cfe-dev/2018-November/060041.html
Co-authored-by: Pierre Gondois
Co-authored-by: Joey Gouly
Co-authored-by: Sven van Haastregt
Differential Revision: https://reviews.llvm.org/D60763
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362371
91177308-0d34-0410-b5e6-
96231b3b80d8
Ilya Biryukov [Mon, 3 Jun 2019 08:34:25 +0000 (08:34 +0000)]
[CodeComplete] Add a bit more whitespace to completed patterns
Summary:
E.g. we now turn `while(<#cond#>){` into `while (<#cond#>) {`
This slightly improves the final output. Should not affect clients that
format the result on their own.
Reviewers: gribozavr
Reviewed By: gribozavr
Subscribers: jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62616
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362363
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 3 Jun 2019 06:02:10 +0000 (06:02 +0000)]
PR42104: Support instantiations of lambdas that implicitly capture
packs.
Two changes:
* Track odr-use via FunctionParmPackExprs to properly handle dependent
odr-uses of packs in generic lambdas.
* Do not instantiate implicit captures; instead, regenerate them by
instantiating the body of the lambda. This is necessary to
distinguish between cases where only one element of a pack is
captured and cases where the entire pack is captured.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362358
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Mon, 3 Jun 2019 00:47:32 +0000 (00:47 +0000)]
[coroutines][PR41909] Don't build dependent coroutine statements for generic lambda
Summary:
https://bugs.llvm.org/show_bug.cgi?id=41909 describes an issue in which
a generic lambda that takes a dependent argument `auto set` causes the
template instantiation machinery for coroutine body statements to crash
with an ICE. The issue is two-fold:
1. The paths taken by the template instantiator contain several asserts
that the coroutine promise must not have a dependent type.
2. The template instantiator unconditionally builds corotuine statements
that depend on the promise type, which cannot be dependent.
To work around the issue, prevent the template instantiator from building
dependent coroutine statements if the coroutine promise type is dependent.
Since we only expect this to occur in the case of a generic lambda, limit
the workaround behavior to just that case.
Reviewers: GorNishanov, EricWF, lewissbaker, tks2103
Reviewed By: GorNishanov
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62550
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362348
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Mon, 3 Jun 2019 00:21:00 +0000 (00:21 +0000)]
Revert "[analyzer] exploded-graph-rewriter: An attempt to fix Windows buildbots."
This reverts commit r362343.
Instead, disable tests on Windows for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362347
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Sun, 2 Jun 2019 23:17:56 +0000 (23:17 +0000)]
[analyzer] exploded-graph-rewriter: An attempt to fix Windows buildbots.
Breakage caused by r362340.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362343
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Dergachev [Sun, 2 Jun 2019 21:40:53 +0000 (21:40 +0000)]
[analyzer] exploded-graph-rewriter: Initial commit.
This is a utility to improve readability and generally manipulate
GraphViz dumps of the analysis graph. Such dumps are often huge and
not only hard to read, but also often hang the viewer apps with their
mere size. Such script should significantly improve debugging experience.
Differential Revision: https://reviews.llvm.org/D62638
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362340
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 2 Jun 2019 18:53:44 +0000 (18:53 +0000)]
Transform lambda expression captures when transforming an expression to
potentially-evaluated.
This ensures that every potentially-evaluated expression is built in a
potentially-evaluated context. No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362336
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Sun, 2 Jun 2019 17:56:26 +0000 (17:56 +0000)]
Fix bug in r362328 -- append to dependency list instead of overwrite it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362334
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Sun, 2 Jun 2019 17:23:53 +0000 (17:23 +0000)]
Add mangling test coverage for non-volatile const member pointers
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362331
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Sun, 2 Jun 2019 16:47:07 +0000 (16:47 +0000)]
Add test coverage for __pascal mangling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362329
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Sun, 2 Jun 2019 15:53:43 +0000 (15:53 +0000)]
[test] Fix plugin tests
Recommit of r361790 that was temporarily reverted in r361793 due to bot breakage.
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@362328
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 2 Jun 2019 04:00:43 +0000 (04:00 +0000)]
Factor out commonality between variable capture initialization and
'this' capture initialization.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362317
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 2 Jun 2019 04:00:38 +0000 (04:00 +0000)]
Add script to update OpenMP -ast-dump test expectations, and use it to
regenerate the test expectations.
(Only two tests change, as a result of no longer matching the 0x in a
pointer; the other tests were already excluding that.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362316
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Sat, 1 Jun 2019 10:12:07 +0000 (10:12 +0000)]
msabi: Fix exponential mangling time for certain pathological inputs
Template back references used to be recursively recomputed, add a
memoization cache to cut down on this.
Since there are now two different types of argument maps, rename the
existing TypeBackReferences to FunArgBackReferences, and rename
mangleArgumentType() to mangleFunctionArgumentType().
Fixes PR42091, the input there now takes 50ms instead of 7s to compile.
No intended behavior change.
Differential Revision: https://reviews.llvm.org/D62746
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362293
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Puchert [Fri, 31 May 2019 21:27:39 +0000 (21:27 +0000)]
Clarify when fix-it hints on warnings are appropriate
Summary:
This is not a change in the rules, it's meant as a clarification about
warnings. Since the recovery from warnings is a no-op, the fix-it hints
on warnings shouldn't change anything. Anything that doesn't just
suppress the warning and changes the meaning of the code (even if it's
for the better) should be on an additional note.
Reviewers: rsmith, aaron.ballman
Reviewed By: aaron.ballman
Subscribers: cfe-commits, thakis
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62470
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362266
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Fri, 31 May 2019 17:54:12 +0000 (17:54 +0000)]
[analyzer] print() JSONify: ExplodedNode revision
Summary: Revert node-ID removal.
Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus
Subscribers: szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp,
cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62658
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362249
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Fri, 31 May 2019 17:00:48 +0000 (17:00 +0000)]
Replace 'default' in an enum-over-a-switch with the missing list.
This suppressed the Wswitch warning causing me to miss it and write an
assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362245
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Fri, 31 May 2019 16:46:38 +0000 (16:46 +0000)]
Suppress nothrow/Exception spec conflict warning when we dont know the ES.
In any situation where the Exception Spec isn't clear, suppress the
warning to avoid false positives.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362243
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Fri, 31 May 2019 15:56:27 +0000 (15:56 +0000)]
Suppress nothrow/exception spec conflict warning when ES is parsed.
The previously added warning ended up causing false positives when
nothrow was used on member functions, where the exception specification
wasn't yet parsed. So, throw() and noexcept(true) both were incorrectly
warning. There doesn't seem to be a good way to force these to be parsed
to identify which they are (and likely should not be), so suppress the warning.
For now, unevaluated/uninstantiated are left as warnings as I am not
creative enough to find a reproducer that causes a false positive for
either.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362236
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Liao [Fri, 31 May 2019 15:29:55 +0000 (15:29 +0000)]
Revise test case due to the change from CUDA 10+.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362232
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Fri, 31 May 2019 14:26:19 +0000 (14:26 +0000)]
Fix for PR42089, regression from r362119
The implementation of the NoThrow ExceptionSpecificationType missed a
switch statement for forming the diagnostic when an out-of-line member
redeclaration misses the exception specification. This patch adds the
correct case statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362225
91177308-0d34-0410-b5e6-
96231b3b80d8
Pengfei Wang [Fri, 31 May 2019 06:09:35 +0000 (06:09 +0000)]
[X86] Add VP2INTERSECT instructions
Support intel AVX512 VP2INTERSECT instructions in clang
Patch by Xiang Zhang (xiangzhangllvm)
Differential Revision: https://reviews.llvm.org/D62367
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362196
91177308-0d34-0410-b5e6-
96231b3b80d8
Zi Xuan Wu [Fri, 31 May 2019 04:42:13 +0000 (04:42 +0000)]
re-commit r361928: [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@362190
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Fri, 31 May 2019 02:23:33 +0000 (02:23 +0000)]
Redirect test output to /dev/null
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362187
91177308-0d34-0410-b5e6-
96231b3b80d8
Pengfei Wang [Fri, 31 May 2019 01:50:07 +0000 (01:50 +0000)]
Revert "[X86] Fix i386 struct and union parameter alignment"
This reverts commit
d61cb749f4ac2c90244906d756e80a5c4a7ffa89 (SVN:
361934).
According to James suggestion, revert this change. Please ref:
https://reviews.llvm.org/D60748
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362186
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Fri, 31 May 2019 01:34:51 +0000 (01:34 +0000)]
[CMake] Provide an option to use relative paths in debug info
CMake always uses absolute file paths in the generated compiler
invocation which results in absolute file paths being embedded in debug
info. This is undesirable when building a toolchain e.g. on bots as the
debug info may embed the bot source checkout path which is meaningless
anywhere else.
This change introduces the LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO which uses
-fdebug-prefix-map (where supported) options to rewrite paths embedded
into debug info with relative ones. Additionally, LLVM_SOURCE_PREFIX can
be used to override the path to source directory with a different one.
Differential Revision: https://reviews.llvm.org/D62622
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362185
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 31 May 2019 01:25:16 +0000 (01:25 +0000)]
PR39728: When completing a class, complete the destructor first.
We need to know whether the destructor is trivial in order to tell
whether other parts of the class are valid (in particular, this affects
whether the type is a literal type, which affects whether defaulted
special members can be declared constexpr or are implicitly constexpr).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362184
91177308-0d34-0410-b5e6-
96231b3b80d8
John McCall [Fri, 31 May 2019 01:21:36 +0000 (01:21 +0000)]
Fix the predefined exponent limit macros for the 16-bit IEEE format.
The magnitude range of normalized _Float16 is 2^-14 (~6e-5) to
(2-2^-10)*2^15 (65504). You might think, then, that the code is
correct to defne FLT16_MIN_EXP and FLT16_MAX_EXP to be -14 and 15
respectively. However, for some reason the C specification actually
specifies a bias for these macros:
C11 5.2.4.2.2:
- minimum negative integer such that FLT_RADIX raised to one less than
that power is a normalized floating-point number, e_min:
FLT_MIN_EXP
DBL_MIN_EXP
LDBL_MIN_EXP
- maximum integer such that FLT_RADIX raised to one less than that
power is a representable finite floating-point number, e_max:
FLT_MAX_EXP
DBL_MAX_EXP
LDBL_MAX_EXP
FLT16_MIN_EXP and FLT16_MAX_EXP should clearly be biased the same way,
and other compilers do in fact do so, as do our OpenCL headers for `half`.
Additionally, FLT16_MIN_10_EXP is just wrong.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362183
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 31 May 2019 01:17:04 +0000 (01:17 +0000)]
Defer building 'this' captures until we have left the capturing region
and returned to the context in which 'this' should be captured.
This means we now always mark 'this' referenced from the context in
which it's actually referenced, rather than potentially from some
context nested within that.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362182
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Fri, 31 May 2019 01:16:43 +0000 (01:16 +0000)]
[CMake][Fuchsia] Use libc++ ABI v2 on Darwin as well
Since we share headers between host and target builds, we need to use
the same version for both.
Differential Revision: https://reviews.llvm.org/D62712
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362181
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Fri, 31 May 2019 01:04:00 +0000 (01:04 +0000)]
Fix -DBUILD_SHARED_LIBS=ON build after rL362160
Differential Revision: https://reviews.llvm.org/D62709
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362180
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 31 May 2019 00:45:10 +0000 (00:45 +0000)]
Defer capture initialization for captured regions until after we've left
the captured region scope.
This removes a case where we would build expressions (and mark
declarations odr-used) in the wrong scope.
Remove the now-unused 'capture initializer' field on sema::Capture
(except for 'this' captures, which still need to be cleaned up).
No functionality change intended (except that we now very slightly more
precisely determine whether we need to use a capture or not when another
captured region encloses an OpenMP captured region).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362179
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 31 May 2019 00:45:09 +0000 (00:45 +0000)]
Defer capture initialization for blocks until after we've left the
function scope.
This removes one of the last few cases where we build expressions in the
wrong function scope context. No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362178
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 30 May 2019 23:21:14 +0000 (23:21 +0000)]
Refactor OpenMP stack management.
Instead of duplicating access to the directive stack throughout
SemaOpenMP.cpp, consolidate it to a few methods and call those
everywhere else. In passing, simplify adjacent code where possible.
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362172
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 30 May 2019 23:21:13 +0000 (23:21 +0000)]
Fix "fallthrough annotation in unreachable code" warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362171
91177308-0d34-0410-b5e6-
96231b3b80d8
Amy Huang [Thu, 30 May 2019 22:04:11 +0000 (22:04 +0000)]
Add enums as global variables in the IR metadata.
Summary:
Keeps track of the enums that were used by saving them as DIGlobalVariables,
since CodeView emits debug info for global constants.
Reviewers: rnk
Subscribers: aprantl, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D62635
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362166
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Thu, 30 May 2019 21:45:59 +0000 (21:45 +0000)]
[Remarks][NFC] Move the serialization to lib/Remarks
Separate the remark serialization to YAML from the LLVM Diagnostics.
This adds a new serialization abstraction: remarks::Serializer. It's
completely independent from lib/IR and it provides an easy way to
replace YAML by providing a new remarks::Serializer.
Differential Revision: https://reviews.llvm.org/D62632
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362160
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Thu, 30 May 2019 21:35:32 +0000 (21:35 +0000)]
Fix constexpr __builtin_*_overflow issue when unsigned->signed operand.
As reported here https://bugs.llvm.org/show_bug.cgi?id=42000, it was
possible to get the constexpr version of __builtin_*_overflow to give
the wrong answer.
This was because when extending the operands to fit the largest type (so
that the math could be done), the decision on whether to sign/zero
extend the operands was based on the result signedness, not on the
operands signedness.
In the reported case, (unsigned char)255 - (int)100 needed
to have each extended to the int in order to do the math. However, when
extending the first operand to 'int', we incorrectly sign extended it
instead of zero extending. Thus, the result didnt fit back into the
unsigned char.
The fix for this was simply to choose zero/sign extension based on the
sign of the operand itself.
Differential Revision: https://reviews.llvm.org/D62665
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362157
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 30 May 2019 20:45:12 +0000 (20:45 +0000)]
[c++2a] Fix assertion failure if we would walk over more than one level
of derived-to-base conversion path when implicitly starting union
subobject lifetimes in constant evaluation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362147
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Yung [Thu, 30 May 2019 20:02:51 +0000 (20:02 +0000)]
Mark test as requiring an ARM target.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362140
91177308-0d34-0410-b5e6-
96231b3b80d8
Mitch Phillips [Thu, 30 May 2019 19:45:32 +0000 (19:45 +0000)]
[GWP-ASan] Mutex implementation [2].
Summary:
See D60593 for further information.
This patch pulls out the mutex implementation and the required definitions file.
We implement our own mutex for GWP-ASan currently, because:
1. We must be compatible with the sum of the most restrictive elements of the supporting allocator's build system. Current targets for GWP-ASan include Scudo (on Linux and Fuchsia), and bionic (on Android).
2. Scudo specifies `-nostdlib++ -nonodefaultlibs`, meaning we can't use `std::mutex` or `mtx_t`.
3. We can't use `sanitizer_common`'s mutex, as the supporting allocators cannot afford the extra maintenance (Android, Fuchsia) and code size (Fuchsia) overheads that this would incur.
In future, we would like to implement a shared base mutex for GWP-ASan, Scudo and sanitizer_common. This will likely happen when both GWP-ASan and Scudo standalone are not in the development phase, at which point they will have stable requirements.
Reviewers: vlad.tsyrklevich, morehouse, jfb
Reviewed By: morehouse
Subscribers: dexonsmith, srhines, cfe-commits, kubamracek, mgorny, cryptoad, jfb, #sanitizers, llvm-commits, vitalybuka, eugenis
Tags: #sanitizers, #llvm, #clang
Differential Revision: https://reviews.llvm.org/D61923
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362138
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Thu, 30 May 2019 18:49:19 +0000 (18:49 +0000)]
Reapply: 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.
Clang patch is unchanged.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362129
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Thu, 30 May 2019 17:31:54 +0000 (17:31 +0000)]
Add Attribute NoThrow as an Exception Specifier Type
In response to https://bugs.llvm.org/show_bug.cgi?id=33235, it became
clear that the current mechanism of hacking through checks for the
exception specification of a function gets confused really quickly when
there are alternate exception specifiers.
This patch introcues EST_NoThrow, which is the equivilent of
EST_noexcept when caused by EST_noThrow. The existing implementation is
left in place to cover functions with no FunctionProtoType.
Differential Revision: https://reviews.llvm.org/D62435
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362119
91177308-0d34-0410-b5e6-
96231b3b80d8
J. Ryan Stinnett [Thu, 30 May 2019 16:46:22 +0000 (16:46 +0000)]
[Docs] Modernize references to macOS
Summary:
This updates all places in documentation that refer to "Mac OS X", "OS X", etc.
to instead use the modern name "macOS" when no specific version number is
mentioned.
If a specific version is mentioned, this attempts to use the OS name at the time
of that version:
* Mac OS X for 10.0 - 10.7
* OS X for 10.8 - 10.11
* macOS for 10.12 - present
Reviewers: JDevlieghere
Subscribers: mgorny, christof, arphaman, cfe-commits, lldb-commits, libcxx-commits, llvm-commits
Tags: #clang, #lldb, #libc, #llvm
Differential Revision: https://reviews.llvm.org/D62654
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362113
91177308-0d34-0410-b5e6-
96231b3b80d8
Erich Keane [Thu, 30 May 2019 15:38:02 +0000 (15:38 +0000)]
Revert "clang support gnu asm goto."
This reverts commit
954ec09aed4f2be04bb5f4e10dbb4ea8bd19ef9a.
Reverting due to test failures as requested by Jennifer Yu.
Conflicts:
clang/test/CodeGen/asm-goto.c
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362106
91177308-0d34-0410-b5e6-
96231b3b80d8
Anastasia Stulova [Thu, 30 May 2019 15:18:07 +0000 (15:18 +0000)]
[OpenCL] Fix OpenCL/SPIR version metadata in C++ mode.
C++ is derived from OpenCL v2.0 therefore set the versions
identically.
Differential Revision: https://reviews.llvm.org/D62657
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362102
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Thu, 30 May 2019 15:15:57 +0000 (15:15 +0000)]
[analyzer] print() JSONify chain: Fix possible build-bot breaks
Summary:
Printing constructing_objects could be non-deterministic as it is a map.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362101
91177308-0d34-0410-b5e6-
96231b3b80d8
Sjoerd Meijer [Thu, 30 May 2019 15:04:06 +0000 (15:04 +0000)]
Follow up of r362096
The new tests were failing, because I missed dependent patch D60697.
I have removed the failing cases for now, which I will restore once
D60697 is in.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362100
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Thu, 30 May 2019 14:48:43 +0000 (14:48 +0000)]
[analyzer] print() JSONify chain: Fix build-bot breaks
Summary:
Printing out a map structure different in different environments so that
this patch generalize the test-case to check for the 'no stmt'-case
anywhere in the Store.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362098
91177308-0d34-0410-b5e6-
96231b3b80d8
Sjoerd Meijer [Thu, 30 May 2019 14:22:26 +0000 (14:22 +0000)]
[ARM] Add CLI support for Armv8.1-M and MVE
Given the existing infrastructure in LLVM side for +fp and +fp.dp,
this is more or less trivial, needing only one tiny source change and
a couple of tests.
Patch by Simon Tatham.
Differential Revision: https://reviews.llvm.org/D60699
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362096
91177308-0d34-0410-b5e6-
96231b3b80d8
Sven van Haastregt [Thu, 30 May 2019 12:35:19 +0000 (12:35 +0000)]
[OpenCL] Support logical vector operators in C++ mode
Support logical operators on vectors in C++ for OpenCL mode, to
preserve backwards compatibility with OpenCL C.
Differential Revision: https://reviews.llvm.org/D62588
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362087
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 30 May 2019 10:44:36 +0000 (10:44 +0000)]
Fix Wdocumentation warning. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362085
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Thu, 30 May 2019 10:05:52 +0000 (10:05 +0000)]
Revert "asm goto: fix out-of-bounds read of Constraints after rC362045"
It was fixed by rC362062.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362079
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 30 May 2019 09:39:45 +0000 (09:39 +0000)]
Fix MSVC "not all control paths return a value" warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362076
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Thu, 30 May 2019 08:03:02 +0000 (08:03 +0000)]
asm goto: fix out-of-bounds read of Constraints after rC362045
When parsing goto labels, Names and Exprs are expanded but Constraints
is not, this may cause a out-of-bounds read later in:
// GCCAsmStmt::GCCAsmStmt
// `constraints` has only `NumExprs - NumLabels` elements
Constraints = new (C) StringLiteral*[NumExprs];
std::copy(constraints, constraints + NumExprs, Constraints);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362067
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 30 May 2019 07:21:08 +0000 (07:21 +0000)]
[AST] asm goto labels don't have constraints, don't try to copy them.
Found by asan.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362062
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Thu, 30 May 2019 06:48:13 +0000 (06:48 +0000)]
Mark CodeGen/asm-goto.c as x86 specific after r362045
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362059
91177308-0d34-0410-b5e6-
96231b3b80d8
John McCall [Thu, 30 May 2019 04:09:01 +0000 (04:09 +0000)]
Add the `objc_class_stub` attribute.
Swift requires certain classes to be not just initialized lazily on first
use, but actually allocated lazily using information that is only available
at runtime. This is incompatible with ObjC class initialization, or at least
not efficiently compatible, because there is no meaningful class symbol
that can be put in a class-ref variable at load time. This leaves ObjC
code unable to access such classes, which is undesirable.
objc_class_stub says that class references should be resolved by calling
a new ObjC runtime function with a pointer to a new "class stub" structure.
Non-ObjC compilers (like Swift) can simply emit this structure when ObjC
interop is required for a class that cannot be statically allocated,
then apply this attribute to the `@interface` in the generated ObjC header
for the class.
This attribute can be thought of as a generalization of the existing
`objc_runtime_visible` attribute which permits more efficient class
resolution as well as supporting the additon of categories to the class.
Subclassing these classes from ObjC is currently not allowed.
Patch by Slava Pestov!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362054
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Thu, 30 May 2019 02:30:04 +0000 (02:30 +0000)]
[Driver] Render target options (e.g. -fuse-init-array) for -fembed-bitcode
Modern ELF platforms use -fuse-init-array to emit .init_array instead of
.ctors . ld.bfd and gold --ctors-in-init-array merge .init_array and
.ctors into .init_array but lld doesn't do that.
If crtbegin*.o crtend*.o don't provide .ctors/.dtors, such .ctors in
user object files can lead to crash (see PR42002. The first and the last
elements in .ctors/.dtors are ignored - they are traditionally provided
by crtbegin*.o crtend*.o).
Call addClangTargetOptions() to ensure -fuse-init-array is rendered on
modern ELF platforms. On Hexagon, this renders -target-feature
+reserved-r19 for -ffixed-r19.
Reviewed By: compnerd
Differential Revision: https://reviews.llvm.org/D62509
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362052
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Thu, 30 May 2019 02:13:15 +0000 (02:13 +0000)]
[PowerPC] Set the default PLT mode on musl to Secure PLT
The musl libc only supports Secure PLT.
Patch by A. Wilcox!
Reviewed By: jhibbits
Differential Revision: https://reviews.llvm.org/D59185
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362051
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Thu, 30 May 2019 01:55:43 +0000 (01:55 +0000)]
[Driver] -static-pie: add -z text
This matches gcc -static-pie. The intention is to prevent dynamic
relocations in read-only segments.
In ld.bfd and gold, -z notext is the default. If text relocations are needed:
* -z notext: allow and emit DF_TEXTREL.
DF_TEXTREL is not emitted if there is no text relocation.
* -z text: error
In lld, -z text is the default (this change is a no-op).
* -z text: error on text relocations
* -z notext: allow text relocations, and emit DF_TEXTREL no matter whether
text relocations exist.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D62606
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362050
91177308-0d34-0410-b5e6-
96231b3b80d8
Jennifer Yu [Thu, 30 May 2019 01:05:46 +0000 (01:05 +0000)]
clang support gnu asm goto.
Syntax:
asm [volatile] goto ( AssemblerTemplate
:
: InputOperands
: Clobbers
: GotoLabels)
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
New llvm IR is "callbr" for inline asm goto instead "call" for inline asm
For:
asm goto("testl %0, %0; jne %l1;" :: "r"(cond)::label_true, loop);
IR:
callbr void asm sideeffect "testl $0, $0; jne ${1:l};", "r,X,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@foo, %label_true), i8* blockaddress(@foo, %loop)) #1
to label %asm.fallthrough [label %label_true, label %loop], !srcloc !3
asm.fallthrough:
Compiler need to generate:
1> a dummy constarint 'X' for each label.
2> an unique fallthrough label for each asm goto stmt " asm.fallthrough%number".
Diagnostic
1> duplicate asm operand name are used in output, input and label.
2> goto out of scope.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362045
91177308-0d34-0410-b5e6-
96231b3b80d8
Amy Huang [Wed, 29 May 2019 21:45:34 +0000 (21:45 +0000)]
CodeView - add static data members to global variable debug info.
Summary:
Add static data members to IR debug info's list of global variables
so that they are emitted as S_CONSTANT records.
Related to https://bugs.llvm.org/show_bug.cgi?id=41615.
Reviewers: rnk
Subscribers: aprantl, cfe-commits, llvm-commits, thakis
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D62167
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362038
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 29 May 2019 21:23:30 +0000 (21:23 +0000)]
[ObjC] Fix encoding of ObjC pointer types that are pointers to typedefs
clang was encoding pointers to typedefs as if they were pointers to
structs because that is apparently what gcc is doing.
For example:
```
@class Class1;
typedef NSArray<Class1 *> MyArray;
void foo1(void) {
const char *s0 = @encode(MyArray *); // "^{NSArray=#}"
const char *s1 = @encode(NSArray<Class1 *> *); // "@"
}
```
This commit removes the code that was there to make clang compatible
with gcc and make clang emit the correct encoding for ObjC pointers,
which is "@".
rdar://problem/
50563529
Differential Revision: https://reviews.llvm.org/D61974
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362034
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 20:47:27 +0000 (20:47 +0000)]
[analyzer] Remove EndPath function as it is dead code
Summary: -
Reviewers: george.karpenkov
Reviewed By: george.karpenkov
Subscribers: baloghadamsoftware, cfe-commits, xazax.hun, szepet, a.sidorin,
mikhail.ramalho, Szelethus, donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D53720
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362030
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Wed, 29 May 2019 20:45:32 +0000 (20:45 +0000)]
Revert "LLVM IR: update Clang tests for byval being a typed attribute."
The underlying LLVM change couldn't cope with llvm-link and broke LTO builds.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362028
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 20:34:29 +0000 (20:34 +0000)]
[analyzer] ConditionBRVisitor: Boolean support
Summary: -
Reviewers: NoQ, george.karpenkov
Reviewed By: NoQ, george.karpenkov
Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
mikhail.ramalho, Szelethus, donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D58207
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362027
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 20:29:02 +0000 (20:29 +0000)]
[analyzer] ConditionBRVisitor: MemberExpr support
Summary: -
Reviewers: NoQ, george.karpenkov
Reviewed By: NoQ
Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
mikhail.ramalho, Szelethus, donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D58206
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362026
91177308-0d34-0410-b5e6-
96231b3b80d8
Csaba Dabis [Wed, 29 May 2019 20:18:07 +0000 (20:18 +0000)]
[analyzer] ConditionBRVisitor: Remove duplicated code
Summary: -
Reviewers: NoQ, george.karpenkov
Reviewed By: NoQ
Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
mikhail.ramalho, Szelethus, donat.nagy, dkrupp
Tags: #clang
Differential Revision: https://reviews.llvm.org/D58199
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362025
91177308-0d34-0410-b5e6-
96231b3b80d8
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