]> granicus.if.org Git - clang/log
clang
7 years ago[Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.
Stephan T. Lavavej [Mon, 21 Aug 2017 22:19:33 +0000 (22:19 +0000)]
[Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

This is a reasonably non-intrusive change, which I've verified
works for both x86 and x64 DevDiv-internal builds.

The idea is to change `bool IsVS2017OrNewer` into a 3-state
`ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
released VS 2017 or newer, or released VS 2015 or older. When looking at
the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
`"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

After we get past the directory structure validation, we use this knowledge
to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
uses that. It also knows that DevDiv-internal builds have an `"inc"`
subdirectory instead of `"include"`.

This may still not be the "right" fix in any sense, but I believe that it's
non-intrusive in the sense that if the special directory names aren't found,
no codepaths are affected. (`ToolsetLayout::OlderVS` and
`ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
which are places where Clang cares about VS's directory structure, and the
only one that isn't being patched is some logic to deal with
cross-compilation. I'm fine with that not working for DevDiv-internal builds
for the moment (we typically test the native compilers), so I added a comment.

Fixes D36860.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311391 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoEnable libfuzzer on NetBSD/amd64
Kamil Rytarowski [Mon, 21 Aug 2017 19:12:14 +0000 (19:12 +0000)]
Enable libfuzzer on NetBSD/amd64

Summary:
Enable SanitizerKind::Fuzzer and SanitizerKind::FuzzerNoLink on x86_64.

Sponsored by <The NetBSD Foundation>

Reviewers: joerg, kcc, vitalybuka, george.karpenkov

Reviewed By: vitalybuka

Subscribers: cfe-commits, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D36935

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311365 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang] Fix tests for Emitting Single Inline Remark
Sam Elliott [Mon, 21 Aug 2017 16:40:35 +0000 (16:40 +0000)]
[clang] Fix tests for Emitting Single Inline Remark

Summary: This change depends on https://reviews.llvm.org/D36054 and should be landed at the same time.

Reviewers: anemet

Reviewed By: anemet

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D36949

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311347 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll speci...
Peter Szecsi [Mon, 21 Aug 2017 16:32:57 +0000 (16:32 +0000)]
[StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops

The LoopExit CFG information provides the opportunity to not mark the loops but
having a stack which tracks if a loop is unrolled or not. So in case of
simulating a loop we just add it and the information if it meets the
requirements to be unrolled to the top of the stack.

Differential Revision: https://reviews.llvm.org/D35684

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311346 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-proto-fuzzer] Update README.
Matt Morehouse [Mon, 21 Aug 2017 16:18:43 +0000 (16:18 +0000)]
[clang-proto-fuzzer] Update README.

Add instructions on how to modify the compiler invocation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311345 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[StaticAnalyzer] Handle LoopExit CFGElement in the analyzer
Peter Szecsi [Mon, 21 Aug 2017 16:10:19 +0000 (16:10 +0000)]
[StaticAnalyzer] Handle LoopExit CFGElement in the analyzer

This patch adds handling of the LoopExit CFGElements to the StaticAnalyzer.
This is reached by introducing a new ProgramPoint.
Tests will be added in a following commit.

Differential Revision: https://reviews.llvm.org/D35670

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311344 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[mips] Remove checking of the redundant condition. NFC
Simon Atanasyan [Mon, 21 Aug 2017 14:08:29 +0000 (14:08 +0000)]
[mips] Remove checking of the redundant condition. NFC

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311334 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFixed a crash on replaying Preamble's PP conditional stack.
Ilya Biryukov [Mon, 21 Aug 2017 12:03:08 +0000 (12:03 +0000)]
Fixed a crash on replaying Preamble's PP conditional stack.

Summary:
The crash occurs when the first token after a preamble is a macro
expansion.
Fixed by moving replayPreambleConditionalStack from Parser into
Preprocessor. It is now called right after the predefines file is
processed.

Reviewers: erikjv, bkramer, klimek, yvvan

Reviewed By: bkramer

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D36872

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311330 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[ObjC] Use consistent comment style in inline asm
Oliver Stannard [Mon, 21 Aug 2017 09:54:46 +0000 (09:54 +0000)]
[ObjC] Use consistent comment style in inline asm

The comment markers accepted by the assembler vary between different targets,
but '//' is always accepted, so we should use that for consistency.

Differential revision: https://reviews.llvm.org/D36666

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311325 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[ARM][AArch64] Cortex-A75 and Cortex-A55 tests
Sam Parker [Mon, 21 Aug 2017 08:52:45 +0000 (08:52 +0000)]
[ARM][AArch64] Cortex-A75 and Cortex-A55 tests

Add frontend tests for Cortex-A75 and Cortex-A55, Arm's latest
big.LITTLE A-class cores. They implement the ARMv8.2-A architecture,
including the cryptography and RAS extensions, plus the optional dot
product extension. They also implement the RCpc AArch64 extension
from ARMv8.3-A.

Cortex-A75:
https://developer.arm.com/products/processors/cortex-a/cortex-a75

Cortex-A55:
https://developer.arm.com/products/processors/cortex-a/cortex-a55

Differential Revision: https://reviews.llvm.org/D36731

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311319 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAllow thiscall attribute in test/Tooling/clang-diff-ast.cpp
Johannes Altmanninger [Sun, 20 Aug 2017 20:13:33 +0000 (20:13 +0000)]
Allow thiscall attribute in test/Tooling/clang-diff-ast.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311301 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Improve and test getNodeValue
Johannes Altmanninger [Sun, 20 Aug 2017 16:18:43 +0000 (16:18 +0000)]
[clang-diff] Improve and test getNodeValue

Summary: Use qualified names if available.

Reviewers: arphaman

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D36186

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311292 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[ODRHash] Move into anonymous namespace. NFC.
Benjamin Kramer [Sun, 20 Aug 2017 13:02:57 +0000 (13:02 +0000)]
[ODRHash] Move into anonymous namespace. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311286 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Fix similarity computation
Johannes Altmanninger [Sun, 20 Aug 2017 12:09:07 +0000 (12:09 +0000)]
[clang-diff] Fix similarity computation

Summary:
Add separate tests for the top-down and the bottom-up phase, as well as
one for the optimal matching.

Reviewers: arphaman

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D36185

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311284 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Filter AST nodes
Johannes Altmanninger [Sun, 20 Aug 2017 10:22:32 +0000 (10:22 +0000)]
[clang-diff] Filter AST nodes

Summary:
Ignore macros and implicit AST nodes, as well as anything outside of the
main source file.

Reviewers: arphaman

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D36184

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311280 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoclang/test/Tooling/clang-diff-ast.cpp: Satisfy thiscall.
NAKAMURA Takumi [Sun, 20 Aug 2017 00:02:20 +0000 (00:02 +0000)]
clang/test/Tooling/clang-diff-ast.cpp: Satisfy thiscall.

  clang/test/Tooling/clang-diff-ast.cpp:45:12: error: expected string not found in input
   // CHECK: CXXConstructorDecl: X(void (char, int))
             ^
  <stdin>:43:25: note: scanning from here
   AccessSpecDecl: public(42)
                          ^
  <stdin>:44:2: note: possible intended match here
   CXXConstructorDecl: X(void (char, int) __attribute__((thiscall)))(43)
   ^

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311270 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Simplify mapping
Johannes Altmanninger [Sat, 19 Aug 2017 17:53:01 +0000 (17:53 +0000)]
[clang-diff] Simplify mapping

Summary:
Until we find a decent heuristic on how to choose between multiple
identical trees, there is no point in supporting multiple mappings.

This also enables matching of nodes with parents of different types,
because there are many instances where this is appropriate.  For
example for and foreach statements; functions in the global or
other namespaces.

Reviewers: arphaman

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D36183

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311251 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAdd clang-diff to tool_patterns in test/lit.cfg
Johannes Altmanninger [Sat, 19 Aug 2017 17:52:29 +0000 (17:52 +0000)]
Add clang-diff to tool_patterns in test/lit.cfg

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311250 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Fix compiler warning
Johannes Altmanninger [Sat, 19 Aug 2017 17:12:25 +0000 (17:12 +0000)]
[clang-diff] Fix compiler warning

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311249 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Add HTML side-by-side diff output
Johannes Altmanninger [Sat, 19 Aug 2017 15:40:45 +0000 (15:40 +0000)]
[clang-diff] Add HTML side-by-side diff output

Reviewers: arphaman

Subscribers: mgorny

Differential Revision: https://reviews.llvm.org/D36182

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311241 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Fix warning about useless comparison
Johannes Altmanninger [Sat, 19 Aug 2017 13:29:44 +0000 (13:29 +0000)]
[clang-diff] Fix warning about useless comparison

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311240 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Make printing of matches optional
Johannes Altmanninger [Sat, 19 Aug 2017 12:04:04 +0000 (12:04 +0000)]
[clang-diff] Make printing of matches optional

Reviewers: arphaman

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D36181

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311237 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[CFG] Add LoopExit information to CFG
Peter Szecsi [Sat, 19 Aug 2017 11:19:16 +0000 (11:19 +0000)]
[CFG] Add LoopExit information to CFG

This patch introduces a new CFG element CFGLoopExit that indicate when a loop
ends. It does not deal with returnStmts yet (left it as a TODO).
It hidden behind a new analyzer-config flag called cfg-loopexit (false by
default).
Test cases added.

The main purpose of this patch right know is to make loop unrolling and loop
widening easier and more efficient. However, this information can be useful for
future improvements in the StaticAnalyzer core too.

Differential Revision: https://reviews.llvm.org/D35668

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311235 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before...
Peter Szecsi [Sat, 19 Aug 2017 10:24:52 +0000 (10:24 +0000)]
[StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop

Adding escape check for the counter variable of the loop.
It is achieved by jumping back on the ExplodedGraph to its declStmt.

Differential Revision: https://reviews.llvm.org/D35657

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311234 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Fix test
Johannes Altmanninger [Sat, 19 Aug 2017 10:05:24 +0000 (10:05 +0000)]
[clang-diff] Fix test

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311233 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Add option to dump the AST, one node per line
Johannes Altmanninger [Sat, 19 Aug 2017 09:36:14 +0000 (09:36 +0000)]
[clang-diff] Add option to dump the AST, one node per line

Summary:
This is done with -ast-dump; the JSON variant has been renamed to
-ast-dump-json.

Reviewers: arphaman

Differential Revision: https://reviews.llvm.org/D36180

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311232 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[c++2a] Implement P0409R2 - Allow lambda capture [=,this] (by hamzasood)
Faisal Vali [Sat, 19 Aug 2017 03:43:07 +0000 (03:43 +0000)]
[c++2a] Implement P0409R2 - Allow lambda capture [=,this] (by hamzasood)

This patch, by hamzasood, implements P0409R2, and allows [=, this] pre-C++2a as an extension (with appropriate warnings) for consistency.

https://reviews.llvm.org/D36572

Thanks Hamza!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311224 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "Revert "[clang-diff] Move printing of matches and changes to clang-diff""
Johannes Altmanninger [Sat, 19 Aug 2017 02:56:35 +0000 (02:56 +0000)]
Revert "Revert "[clang-diff] Move printing of matches and changes to clang-diff""

Fix build by renaming ChangeKind -> Change

This reverts commit 0c78c5729f29315d7945988efd048c0cb86c07ce.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311222 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Fix test for python 3
Johannes Altmanninger [Sat, 19 Aug 2017 01:34:24 +0000 (01:34 +0000)]
[clang-diff] Fix test for python 3

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311220 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "Revert "[clang-diff] Move the JSON export function to clang-diff""
Johannes Altmanninger [Sat, 19 Aug 2017 00:57:38 +0000 (00:57 +0000)]
Revert "Revert "[clang-diff] Move the JSON export function to clang-diff""

This reverts commit eac4c13ac9ea8f12bc049e040c7b9c8a517f54e7, the
original commit *should* not have caused the build failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311216 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "[clang-diff] Move the JSON export function to clang-diff"
Vlad Tsyrklevich [Fri, 18 Aug 2017 23:21:11 +0000 (23:21 +0000)]
Revert "[clang-diff] Move the JSON export function to clang-diff"

This reverts commit r311199, it was causing widespread build failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311211 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "[clang-diff] Move printing of matches and changes to clang-diff"
Vlad Tsyrklevich [Fri, 18 Aug 2017 23:21:10 +0000 (23:21 +0000)]
Revert "[clang-diff] Move printing of matches and changes to clang-diff"

This reverts commit r311200, it was causing widespread build failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311210 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Move printing of matches and changes to clang-diff
Johannes Altmanninger [Fri, 18 Aug 2017 21:26:34 +0000 (21:26 +0000)]
[clang-diff] Move printing of matches and changes to clang-diff

Summary:
This also changes the output order of the changes. Now the matches are
printed in pre-order, intertwined with insertions, updates, and moves.
Deletions are printed afterwards.

Reviewers: arphaman

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D36179

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311200 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Move the JSON export function to clang-diff
Johannes Altmanninger [Fri, 18 Aug 2017 21:26:13 +0000 (21:26 +0000)]
[clang-diff] Move the JSON export function to clang-diff

Reviewers: arphaman

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D36178

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311199 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[Sema] Don't emit -Wunguarded-availability for switch cases
Erik Pilkington [Fri, 18 Aug 2017 20:20:56 +0000 (20:20 +0000)]
[Sema] Don't emit -Wunguarded-availability for switch cases

This made it awkward to switch over an enum where some entries
are partial and is unlikley to catch any bugs.

Differential revision: https://reviews.llvm.org/D36777

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311191 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[SanitizerCoverage] Add stack depth tracing instrumentation.
Matt Morehouse [Fri, 18 Aug 2017 18:43:30 +0000 (18:43 +0000)]
[SanitizerCoverage] Add stack depth tracing instrumentation.

Summary:
Augment SanitizerCoverage to insert maximum stack depth tracing for
use by libFuzzer.  The new instrumentation is enabled by the flag
-fsanitize-coverage=stack-depth and is compatible with the existing
trace-pc-guard coverage.  The user must also declare the following
global variable in their code:
  thread_local uintptr_t __sancov_lowest_stack

https://bugs.llvm.org/show_bug.cgi?id=33857

Reviewers: vitalybuka, kcc

Reviewed By: vitalybuka

Subscribers: kubamracek, hiraditya, cfe-commits, llvm-commits

Differential Revision: https://reviews.llvm.org/D36839

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311186 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-proto-fuzzer] Allow user-specified compiler arguments.
Matt Morehouse [Fri, 18 Aug 2017 18:34:39 +0000 (18:34 +0000)]
[clang-proto-fuzzer] Allow user-specified compiler arguments.

Summary:
Arguments can be specified after -ignore_remaining_args=1 to modify
the compiler invocation.  For example, the following command-line
will fuzz LLVM with a custom optimization level and target triple:
  clang-proto-fuzzer CORPUS/ -ignore_remaining_args -O3 \
      -triple arm64-apple-ios9

Reviewers: vitalybuka, kcc

Reviewed By: vitalybuka

Subscribers: aemerson, cfe-commits, kristof.beyls

Differential Revision: https://reviews.llvm.org/D36882

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311185 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[analyzer] Fix modeling of constructors
Alexander Shaposhnikov [Fri, 18 Aug 2017 18:20:43 +0000 (18:20 +0000)]
[analyzer] Fix modeling of constructors

This diff fixes analyzer's crash (triggered assert) on the newly added test case.
The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
For classes with empty bases the offsets might be tricky.
For example, let's assume we have
 struct S: NonEmptyBase, EmptyBase {
     ...
 };
In this case Clang applies empty base class optimization and
the offset of EmptyBase will be 0, it can be verified via
clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
When the analyzer tries to perform zero initialization of EmptyBase
it will hit the assert because that region
has already been "written" by the constructor of NonEmptyBase.

Test plan:
make check-all

Differential revision: https://reviews.llvm.org/D36851

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311182 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAMDGPU: Rename r600-mcpu.cl->amdgpu-mcpu.cl
Konstantin Zhuravlyov [Fri, 18 Aug 2017 17:29:07 +0000 (17:29 +0000)]
AMDGPU: Rename r600-mcpu.cl->amdgpu-mcpu.cl

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311178 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Add commandline arguments.
Johannes Altmanninger [Fri, 18 Aug 2017 16:34:22 +0000 (16:34 +0000)]
[clang-diff] Add commandline arguments.

Summary:
Support command line options for build path and extra arguments
This emulates the options accepted by clang tools that use CommonOptionsParser.

Add a flag for controlling the maximum size parameter for bottom up matching.

Reviewers: arphaman

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D36177

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311173 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang-diff] Fix some errors and inconsistencies
Johannes Altmanninger [Fri, 18 Aug 2017 16:34:15 +0000 (16:34 +0000)]
[clang-diff] Fix some errors and inconsistencies

Fix to the computation of the rightmost descendant.

Prevents root nodes from being mapped if they are already mapped.  This
only makes a difference when we compare AST Nodes other than entire
translation units, a feature which still has to be tested.

Reviewers: arphaman

Subscribers: klimek

Differential Revision: https://reviews.llvm.org/D36176

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311172 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[CommonOptionsParser] Expose ArgumentsAdjustingCompilationDatabase
Johannes Altmanninger [Fri, 18 Aug 2017 16:21:08 +0000 (16:21 +0000)]
[CommonOptionsParser] Expose ArgumentsAdjustingCompilationDatabase

This is useful for tools such as clang-diff which do not use
CommonOptionsParser due to the need for multiple compilation databases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311170 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAMDGPU: add missing amdgcn processors and tests
Konstantin Zhuravlyov [Fri, 18 Aug 2017 01:13:39 +0000 (01:13 +0000)]
AMDGPU: add missing amdgcn processors and tests

  - gfx600
  - gfx601
  - gfx703
  - gfx902
  - gfx903

Differential Revision: https://reviews.llvm.org/D36771

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311141 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert r311137 (GlobalISel ABI commit).
Tim Northover [Fri, 18 Aug 2017 00:33:24 +0000 (00:33 +0000)]
Revert r311137 (GlobalISel ABI commit).

It was committed by mistake since it was in the same monorepo as the
LLVM change I was working on.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311140 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoGlobalISel (AArch64): fix ABI at border between GPRs and SP.
Tim Northover [Thu, 17 Aug 2017 23:14:01 +0000 (23:14 +0000)]
GlobalISel (AArch64): fix ABI at border between GPRs and SP.

If a struct would end up half in GPRs and half on SP the ABI says it should
actually go entirely on the stack. We were getting this wrong in GlobalISel
before, causing compatibility issues.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311137 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoPR34161: support evaluation of 'void()' expressions in C++14 onwards.
Richard Smith [Thu, 17 Aug 2017 19:35:50 +0000 (19:35 +0000)]
PR34161: support evaluation of 'void()' expressions in C++14 onwards.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311115 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoUnguarded availability diagnoser should use TraverseStmt instead of
Alex Lorenz [Thu, 17 Aug 2017 14:22:27 +0000 (14:22 +0000)]
Unguarded availability diagnoser should use TraverseStmt instead of
Base::TraverseStmt when visiting the then/else branches of if statements

This ensures that the statement stack is correctly tracked and correct
multi-statement fixit is generated inside of an if (@available)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311088 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoPrint enum constant values using the original source formatting
Alex Lorenz [Thu, 17 Aug 2017 13:41:55 +0000 (13:41 +0000)]
Print enum constant values using the original source formatting
if possible when creating "Declaration" nodes in XML comments

rdar://14765746

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311085 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix undefined behavior that is caused by not always initializing a bool.
Daniel Jasper [Thu, 17 Aug 2017 06:33:46 +0000 (06:33 +0000)]
Fix undefined behavior that is caused by not always initializing a bool.

The fix in r310994 is incomplete, as moveFromAndCancel can set the
pointer without initializing OldIsSpeculativelyEvaluating.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311070 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFurther refactoring of the constant emitter. NFC.
John McCall [Thu, 17 Aug 2017 05:03:55 +0000 (05:03 +0000)]
Further refactoring of the constant emitter.  NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311065 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[analyzer] Add support for reference counting of parameters on the callee side
Devin Coughlin [Thu, 17 Aug 2017 04:19:07 +0000 (04:19 +0000)]
[analyzer] Add support for reference counting of parameters on the callee side

This commit adds the functionality of performing reference counting on the
callee side for Integer Set Library (ISL) to Clang Static Analyzer's
RetainCountChecker.

Reference counting on the callee side can be extensively used to perform
debugging within a function (For example: Finding leaks on error paths).

Patch by Malhar Thakkar!

Differential Revision: https://reviews.llvm.org/D36441

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311063 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[index] Add indexing for unresolved-using declarations
Ben Langmuir [Wed, 16 Aug 2017 23:12:21 +0000 (23:12 +0000)]
[index] Add indexing for unresolved-using declarations

In dependent contexts we end up referencing these, so make sure they
have USRs, and have their declarations indexed. For the most part they
behave like typedefs, but we also need to worry about having multiple
using declarations with the same "name".

rdar://problem/33883650

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311053 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix typos in comments; NFC
George Burgess IV [Wed, 16 Aug 2017 22:44:17 +0000 (22:44 +0000)]
Fix typos in comments; NFC

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311051 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoDon't use -no-integrated-as in test/Driver/opt-record.c
Hal Finkel [Wed, 16 Aug 2017 21:51:31 +0000 (21:51 +0000)]
Don't use -no-integrated-as in test/Driver/opt-record.c

-no-integrated-as is not supported on some targets (e.g.,
x86_64-pc-windows-msvc). Testing using -save-temps is good enough to cover the
relevant logic, and that should work everywhere.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311043 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoBase optimization-record file names on the final output
Hal Finkel [Wed, 16 Aug 2017 21:34:27 +0000 (21:34 +0000)]
Base optimization-record file names on the final output

Using Output.getFilename() to construct the file name used for optimization
recording in Clang::ConstructJob, when -c is provided, does not work correctly
if we're not using the integrated assembler. With -no-integrated-as (or
-save-temps) Output.getFilename() gives the name of the temporary assembly
file, not the final output file. Instead, use the final output (as provided by
-o). If this is not available, then fall back to using a name based on the
input file.

Fixes PR31532.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311041 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoUse the file name from linemarker for debug info if an input is preprocessed source.
Taewook Oh [Wed, 16 Aug 2017 19:36:24 +0000 (19:36 +0000)]
Use the file name from linemarker for debug info if an input is preprocessed source.

Summary:
Even in the case of the input file is a preprocessed source, clang uses the file name of the preprocesses source for debug info (DW_AT_name attribute for DW_TAG_compile_unit). However, gcc uses the file name specified in the first linemarker instead. This makes more sense because the one specified in the linemarker represents the "actual" source file name.

Clang already uses the file name specified in the first linemarker for Module name (https://github.com/llvm-mirror/clang/blob/master/lib/Frontend/FrontendAction.cpp#L779) if the input is preprocessed. This patch makes clang to use the same value for debug info as well.

Reviewers: compnerd, rnk, dblaikie, rsmith

Reviewed By: rnk

Subscribers: aprantl, cfe-commits

Differential Revision: https://reviews.llvm.org/D36474

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311037 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[Driver] SafeStack does not need a runtime library on Fuchsia
Petr Hosek [Wed, 16 Aug 2017 19:06:05 +0000 (19:06 +0000)]
[Driver] SafeStack does not need a runtime library on Fuchsia

Patch by Roland McGrath

Differential Revision: https://reviews.llvm.org/D36779

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311034 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[CMake] Build sanitized C++ runtimes for Fuchsia
Petr Hosek [Wed, 16 Aug 2017 19:06:04 +0000 (19:06 +0000)]
[CMake] Build sanitized C++ runtimes for Fuchsia

Differential Revision: https://reviews.llvm.org/D36349

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311033 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[OPENMP] Fix for PR28581: OpenMP linear clause - wrong results.
Alexey Bataev [Wed, 16 Aug 2017 15:58:46 +0000 (15:58 +0000)]
[OPENMP] Fix for PR28581: OpenMP linear clause - wrong results.

If worksharing construct has at least one linear item, an implicit
synchronization point must be emitted to avoid possible conflict with
the loading/storing values to the original variables. Added implicit
barrier if the linear item is found before actual start of the
worksharing construct.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311013 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[OPRNMP] Fix for PR33445: ICE: OpenMP target containing ordered for.
Alexey Bataev [Wed, 16 Aug 2017 14:01:00 +0000 (14:01 +0000)]
[OPRNMP] Fix for PR33445: ICE: OpenMP target containing ordered for.

If exceptions are enabled, there may be a problem with the codegen of
the finalization functions from OpenMP runtime. It happens because of
the problem with the getting of thread identifier value. Patch tries to
fix it by using the result of the call of function
__kmpc_global_thread_num() rather than loading of value of outlined
function parameter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311007 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix a UBSan failure where this boolean was copied when uninitialized.
Chandler Carruth [Wed, 16 Aug 2017 07:22:49 +0000 (07:22 +0000)]
Fix a UBSan failure where this boolean was copied when uninitialized.

When r310905 moved the pointer and bool out of a PointerIntPair, it made
them end up uninitialized and caused UBSan failures when copying the
uninitialized boolean. However, making the pointer be null should avoid
the reference to the boolean entirely.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310994 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix comments about __OPENCL_MEMORY_SCOPE_* macros
Yaxun Liu [Wed, 16 Aug 2017 04:15:28 +0000 (04:15 +0000)]
Fix comments about __OPENCL_MEMORY_SCOPE_* macros

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310986 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoPR19668, PR23034: Fix handling of move constructors and deleted copy
Richard Smith [Wed, 16 Aug 2017 01:49:53 +0000 (01:49 +0000)]
PR19668, PR23034: Fix handling of move constructors and deleted copy
constructors when deciding whether classes should be passed indirectly.

This fixes ABI differences between Clang and GCC:

 * Previously, Clang ignored the move constructor when making this
   determination. It now takes the move constructor into account, per
   https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
   seem recent, but the ABI change was agreed on the Itanium C++ ABI
   list a long time ago).

 * Previously, Clang's behavior when the copy constructor was deleted
   was unstable -- depending on whether the lazy declaration of the
   copy constructor had been triggered, you might get different behavior.
   We now eagerly declare the copy constructor whenever its deletedness
   is unclear, and ignore deleted copy/move constructors when looking for
   a trivial such constructor.

This also fixes an ABI difference between Clang and MSVC:

 * If the copy constructor would be implicitly deleted (but has not been
   lazily declared yet), for instance because the class has an rvalue
   reference member, we would pass it directly. We now pass such a class
   indirectly, matching MSVC.

Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
Schmidt, which was based on a patch by Reid Kleckner!

This is a re-commit of r310401, which was reverted in r310464 due to ARM
failures (which should now be fixed).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310983 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAdd test that we get the correct calling convention and mangling for va_list.
Richard Smith [Wed, 16 Aug 2017 01:46:46 +0000 (01:46 +0000)]
Add test that we get the correct calling convention and mangling for va_list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310982 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAdd missing test for warning added in r310803.
Richard Smith [Wed, 16 Aug 2017 00:06:07 +0000 (00:06 +0000)]
Add missing test for warning added in r310803.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310978 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "Revert "Revert "Fix LLVMgold plugin name/path for non-Linux."""
Dan Albert [Tue, 15 Aug 2017 23:57:34 +0000 (23:57 +0000)]
Revert "Revert "Revert "Fix LLVMgold plugin name/path for non-Linux."""

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310977 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "Add a target for new LTO plugin name tests."
Dan Albert [Tue, 15 Aug 2017 23:57:32 +0000 (23:57 +0000)]
Revert "Add a target for new LTO plugin name tests."

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310976 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoDo not look through pack expansions when looking for unexpanded parameter packs.
Richard Smith [Tue, 15 Aug 2017 22:58:45 +0000 (22:58 +0000)]
Do not look through pack expansions when looking for unexpanded parameter packs.

Fixes a selection of rejects-valids when pack-expanding a lambda that itself
contains a pack expansion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310972 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAdd a target for new LTO plugin name tests.
Dan Albert [Tue, 15 Aug 2017 22:10:44 +0000 (22:10 +0000)]
Add a target for new LTO plugin name tests.

Not all targets will use -plugin with -flto. Pick a fixed target so
this works regardless of the default target (regardless of host OS,
the toolchain should be picking the correct LTO plugin for a target
that supports it).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310966 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoExtract IRGen's constant-emitter into its own helper class and clean up
John McCall [Tue, 15 Aug 2017 21:42:52 +0000 (21:42 +0000)]
Extract IRGen's constant-emitter into its own helper class and clean up
the interface.

The ultimate goal here is to make it easier to do some more interesting
things in constant emission, like emit constant initializers that have
ignorable side-effects, or doing the majority of an initialization
in-place and then patching up the last few things with calls.  But for
now this is mostly just a refactoring.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310964 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAllow the target field of a CK_ToUnion to be more easily recovered.
John McCall [Tue, 15 Aug 2017 21:42:47 +0000 (21:42 +0000)]
Allow the target field of a CK_ToUnion to be more easily recovered.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310963 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAllow StmtVisitor visitation to be parameterized. NFC.
John McCall [Tue, 15 Aug 2017 21:42:42 +0000 (21:42 +0000)]
Allow StmtVisitor visitation to be parameterized.  NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310962 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "Revert "Fix LLVMgold plugin name/path for non-Linux.""
Dan Albert [Tue, 15 Aug 2017 21:31:17 +0000 (21:31 +0000)]
Revert "Revert "Fix LLVMgold plugin name/path for non-Linux.""

Summary:
Relanding https://reviews.llvm.org/D35739 which was reverted because
it broke the tests on non-Linux. The tests have been fixed to be
platform agnostic, and additional tests have been added to make sure
that the plugin has the correct extension on each platform
(%pluginext doesn't work in CHECK lines).

Reviewers: srhines, pirama

Reviewed By: srhines

Subscribers: emaste, mehdi_amini, eraman, cfe-commits

Differential Revision: https://reviews.llvm.org/D36769

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310960 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoSwitch to consumeError(), since this can crash otherwise.
Stephen Hines [Tue, 15 Aug 2017 21:20:41 +0000 (21:20 +0000)]
Switch to consumeError(), since this can crash otherwise.

Summary:
If assertions are disabled, but LLVM_ABI_BREAKING_CHANGES is enabled,
this will cause an issue with an unchecked Success. Switching to
consumeError() is the correct way to bypass the check.

Reviewers: llvm-commits, cfe-commits, arphaman

Reviewed By: arphaman

Subscribers: arphaman, klimek, pirama

Differential Revision: https://reviews.llvm.org/D36728

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310958 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFixup for r310950: Also remove the new instance of %T from html-diags.c
Kuba Mracek [Tue, 15 Aug 2017 19:54:04 +0000 (19:54 +0000)]
Fixup for r310950: Also remove the new instance of %T from html-diags.c

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310952 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang] Get rid of "%T" expansions
Kuba Mracek [Tue, 15 Aug 2017 19:47:06 +0000 (19:47 +0000)]
[clang] Get rid of "%T" expansions

The %T lit expansion expands to a common directory shared between all the tests in the same directory, which is unexpected and unintuitive, and more importantly, it's been a source of subtle race conditions and flaky tests. In https://reviews.llvm.org/D35396, it was agreed that it would be best to simply ban %T and only keep %t, which is unique to each test. When a test needs a temporary directory, it can just create one using mkdir %t.

This patch removes %T in clang.

Differential Revision: https://reviews.llvm.org/D36437

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310950 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[clang] Code cleanup in clang/tooling
Alexander Shaposhnikov [Tue, 15 Aug 2017 19:23:54 +0000 (19:23 +0000)]
[clang] Code cleanup in clang/tooling

1. Add missing explicit for SymbolName constructor.
2. Add missing std::move in createRenameReplacements.

Differential revision: https://reviews.llvm.org/D36715

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310948 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoPR33082: Improve tracking of unexpanded parameter packs within variadic generic lambdas.
Richard Smith [Tue, 15 Aug 2017 19:11:21 +0000 (19:11 +0000)]
PR33082: Improve tracking of unexpanded parameter packs within variadic generic lambdas.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310946 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAttempt to fix failure in CodeGenOpenCL/atomic-ops.cl again
Yaxun Liu [Tue, 15 Aug 2017 17:59:26 +0000 (17:59 +0000)]
Attempt to fix failure in CodeGenOpenCL/atomic-ops.cl again

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310937 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[index] Update indexing to handle CXXDeductionGuideDecls properly
Argyrios Kyrtzidis [Tue, 15 Aug 2017 17:20:37 +0000 (17:20 +0000)]
[index] Update indexing to handle CXXDeductionGuideDecls properly

CXXDeductionGuideDecls can't be referenced so there's no need to output a symbol occurrence for them.
Also handle DeducedTemplateSpecializationTypeLocs in the TypeIndexer so we don't miss the symbol occurrences of the corresponding template decls.

Patch by Nathan Hawes!

Differential Revision: https://reviews.llvm.org/D36641

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310933 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAttempt to fix failure in CodeGenOpenCL/atomic-ops.cl
Yaxun Liu [Tue, 15 Aug 2017 17:16:44 +0000 (17:16 +0000)]
Attempt to fix failure in CodeGenOpenCL/atomic-ops.cl

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310932 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRemove -finclude-default-header in OpenCL atomic tests
Yaxun Liu [Tue, 15 Aug 2017 16:30:31 +0000 (16:30 +0000)]
Remove -finclude-default-header in OpenCL atomic tests

Differential Revision: https://reviews.llvm.org/D36676

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310927 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[OpenCL] Support variable memory scope in atomic builtins
Yaxun Liu [Tue, 15 Aug 2017 16:02:49 +0000 (16:02 +0000)]
[OpenCL] Support variable memory scope in atomic builtins

Differential Revision: https://reviews.llvm.org/D36580

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310924 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAllow pretty platform names in availability attributes
Alex Lorenz [Tue, 15 Aug 2017 14:42:01 +0000 (14:42 +0000)]
Allow pretty platform names in availability attributes

rdar://32076651

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310921 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[OPENMP] Fix compiler crash on argument translate for NVPTX.
Alexey Bataev [Tue, 15 Aug 2017 14:34:04 +0000 (14:34 +0000)]
[OPENMP] Fix compiler crash on argument translate for NVPTX.

When translating arguments for NVPTX target it is not taken into account
that function may have variable number of arguments. Patch fixes this
problem.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310920 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[Sema] Silence -Wobjc-missing-property-synthesis for unavailable properties
Alex Lorenz [Tue, 15 Aug 2017 12:40:01 +0000 (12:40 +0000)]
[Sema] Silence -Wobjc-missing-property-synthesis for unavailable properties

rdar://30296911

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310916 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[OpenCL] Allow targets to select address space per type
Sven van Haastregt [Tue, 15 Aug 2017 09:38:18 +0000 (09:38 +0000)]
[OpenCL] Allow targets to select address space per type

Generalize getOpenCLImageAddrSpace into getOpenCLTypeAddrSpace, such
that targets can select the address space per type.

No functional changes intended.

Initial patch by Simon Perretta.

Differential Revision: https://reviews.llvm.org/D33989

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310911 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAvoid PointerIntPair of constexpr EvalInfo structs
Reid Kleckner [Tue, 15 Aug 2017 01:17:47 +0000 (01:17 +0000)]
Avoid PointerIntPair of constexpr EvalInfo structs

They are stack allocated, so their alignment is not to be trusted.
32-bit MSVC only guarantees 4 byte stack alignment, even though alignof
would tell you otherwise. I tried fixing this with __declspec align, but
that apparently upsets GCC. Hopefully this version will satisfy all
compilers.

See PR32018 for some info about the mingw issues.

Should supercede https://reviews.llvm.org/D34873

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310905 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "Fix LLVMgold plugin name/path for non-Linux."
Dan Albert [Tue, 15 Aug 2017 00:31:44 +0000 (00:31 +0000)]
Revert "Fix LLVMgold plugin name/path for non-Linux."

Broke a test. Will fix the test and re-land later.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310903 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[CMake] Include LLVMFuzzer in Fuchsia toolchain
Petr Hosek [Tue, 15 Aug 2017 00:22:00 +0000 (00:22 +0000)]
[CMake] Include LLVMFuzzer in Fuchsia toolchain

Differential Revision: https://reviews.llvm.org/D36541

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310901 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix LLVMgold plugin name/path for non-Linux.
Dan Albert [Mon, 14 Aug 2017 23:19:38 +0000 (23:19 +0000)]
Fix LLVMgold plugin name/path for non-Linux.

Summary:
It's only named LLVMgold.so on Linux. Fix the name for Windows and
Darwin.

Also fix the path for Windows so binutils doesn't have to.

Reviewers: srhines, pirama

Reviewed By: srhines

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D35739

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310895 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[analyzer] Fix SimpleSValBuilder::simplifySVal
Alexander Shaposhnikov [Mon, 14 Aug 2017 21:23:08 +0000 (21:23 +0000)]
[analyzer] Fix SimpleSValBuilder::simplifySVal

This diff fixes a crash (triggered assert) on the newly added test case.
In the method Simplifier::VisitSymbolData we check the type of S and return
Loc/NonLoc accordingly.

Differential revision: https://reviews.llvm.org/D36564

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310887 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[Sema] Improve some -Wunguarded-availability diagnostics
Erik Pilkington [Mon, 14 Aug 2017 19:49:12 +0000 (19:49 +0000)]
[Sema] Improve some -Wunguarded-availability diagnostics

rdar://33543523
Differential revision: https://reviews.llvm.org/D36200

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310874 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[OPENMP] Fix for PR33922: New ident_t flags for
Alexey Bataev [Mon, 14 Aug 2017 17:56:13 +0000 (17:56 +0000)]
[OPENMP] Fix for PR33922: New ident_t flags for
__kmpc_for_static_init().

OpenMP 5.0 will include OpenMP Tools interface that requires distinguishing different worksharing constructs.

Since the same entry point (__kmp_for_static_init(ident_t *loc,
kmp_int32 global_tid,........)) is called in case static
loop/sections/distribute it is suggested using 'flags' field of the
ident_t structure to pass the type of the construct.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310865 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[rename] Introduce symbol occurrences
Alex Lorenz [Mon, 14 Aug 2017 16:19:24 +0000 (16:19 +0000)]
[rename] Introduce symbol occurrences

Symbol occurrences store the results of local rename and will also be used for
the global, indexed rename results. Their kind is used to determine whether they
should be renamed automatically or not. They can be converted to a set of
AtomicChanges as well.

Differential Revision: https://reviews.llvm.org/D36156

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310853 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoclang-format: [JS] wrap optional properties in type aliases.
Martin Probst [Mon, 14 Aug 2017 16:09:08 +0000 (16:09 +0000)]
clang-format: [JS] wrap optional properties in type aliases.

Summary:
clang-format wraps object literal keys in an object literal if they are
marked as `TT_SelectorName`s and/or the colon is marked as
`TT_DictLiteral`. Previously, clang-format would accidentally work
because colons in type aliases were marked as `TT_DictLiteral`. r310367
fixed this to assing `TT_JsTypeColon`, which broke wrapping in certain
situations. However the root cause was that clang-format incorrectly
didn't skip questionmarks when detecting selector name.

This change fixes both locations to (1) assign `TT_SelectorName` and (2)
treat `TT_JsTypeColon` like `TT_DictLiteral`.

Previously:

    type X = {
      a: string, b?: string,
    };

Now:

    type X = {
      a: string,
      b?: string,
    };

Reviewers: djasper, sammccall

Subscribers: cfe-commits, klimek

Differential Revision: https://reviews.llvm.org/D36684

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310852 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoclang-format: [JS] do not insert whitespace in call positions.
Martin Probst [Mon, 14 Aug 2017 16:08:16 +0000 (16:08 +0000)]
clang-format: [JS] do not insert whitespace in call positions.

Summary:
In JavaScript, may keywords can be used in method names and thus call sites:

    foo.delete();
    foo.instanceof();

clang-format would previously insert whitespace after the `instanceof`. This
change generically skips inserting whitespace between a keyword and a
parenthesis if preceded by a dot, i.e. in a callsite.

Reviewers: djasper

Subscribers: klimek, cfe-commits

Differential Revision: https://reviews.llvm.org/D36142

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310851 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[OPENMP][DEBUG] Fix for PR33676: Debug info for OpenMP region is broken.
Alexey Bataev [Mon, 14 Aug 2017 16:03:47 +0000 (16:03 +0000)]
[OPENMP][DEBUG] Fix for PR33676: Debug info for OpenMP region is broken.

After some changes in clang/LLVM debug info for task-based regions was
not generated at all. Patch fixes this problem.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310850 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[OPENMP] Generalization of calls of the outlined functions.
Alexey Bataev [Mon, 14 Aug 2017 15:01:03 +0000 (15:01 +0000)]
[OPENMP] Generalization of calls of the outlined functions.

General improvement of the outlined functions calls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310840 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[Parse] Fix typo in header docs (NFC)
Brian Gesiak [Mon, 14 Aug 2017 14:29:11 +0000 (14:29 +0000)]
[Parse] Fix typo in header docs (NFC)

Summary:
Fix typo "delcarations", added in rL310609 and rL310627.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310838 91177308-0d34-0410-b5e6-96231b3b80d8