]> granicus.if.org Git - clang/log
clang
6 years ago[clang-refactor] Apply source replacements
Alex Lorenz [Fri, 13 Oct 2017 19:42:05 +0000 (19:42 +0000)]
[clang-refactor] Apply source replacements

This commit actually brings clang-refactor to a usable state as it can now
apply the refactoring changes to source files.
The -selection option is now also fully supported.

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

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

6 years ago[analyzer] RetainCount: Ignore annotations on user-made CFRetain wrappers.
Artem Dergachev [Fri, 13 Oct 2017 19:10:42 +0000 (19:10 +0000)]
[analyzer] RetainCount: Ignore annotations on user-made CFRetain wrappers.

It is not uncommon for the users to make their own wrappers around
CoreFoundation's CFRetain and CFRelease functions that are defensive
against null references. In such cases CFRetain is often incorrectly
marked as CF_RETURNS_RETAINED. Ignore said annotation and treat such
wrappers similarly to the regular CFRetain.

rdar://problem/31699502
Differential Revision: https://reviews.llvm.org/D38877

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

6 years ago[CodeGen] EmitPointerWithAlignment() to generate TBAA info along with LValue base...
Ivan A. Kosarev [Fri, 13 Oct 2017 18:40:18 +0000 (18:40 +0000)]
[CodeGen] EmitPointerWithAlignment() to generate TBAA info along with LValue base info

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

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

6 years ago[X86] Remove 'knm' defines from predefined-arch-macros.c test.
Craig Topper [Fri, 13 Oct 2017 18:38:10 +0000 (18:38 +0000)]
[X86] Remove 'knm' defines from predefined-arch-macros.c test.

Direction seems to be that we dont' want to keep adding these, but I forgot to remove it from the test before I committed r315723.

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

6 years ago[X86] Add skeleton support for knm cpu
Craig Topper [Fri, 13 Oct 2017 18:14:24 +0000 (18:14 +0000)]
[X86] Add skeleton support for knm cpu

This adds support Knights Mill CPU. Preprocessor defines match gcc's implementation.

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

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

6 years ago[CodeGen] emitOMPArraySectionBase() to generate TBAA info along with LValue base...
Ivan A. Kosarev [Fri, 13 Oct 2017 17:34:18 +0000 (17:34 +0000)]
[CodeGen] emitOMPArraySectionBase() to generate TBAA info along with LValue base info

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

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

6 years agoRevert "[lit] Raise the logic for enabling clang & lld substitutions to llvm."
Bruno Cardoso Lopes [Fri, 13 Oct 2017 17:11:13 +0000 (17:11 +0000)]
Revert "[lit] Raise the logic for enabling clang & lld substitutions to llvm."

This reverts commit r315627, fixing bot failures:
http://green.lab.llvm.org/green/job/clang-stage1-configure-RA

LIT is failing to properly apply substitution to debuginfo-tests
after this change.

rdar://problem/34979568

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

6 years ago[CodeGen] getNaturalTypeAlignment() to generate TBAA info along with LValue base...
Ivan A. Kosarev [Fri, 13 Oct 2017 16:58:30 +0000 (16:58 +0000)]
[CodeGen] getNaturalTypeAlignment() to generate TBAA info along with LValue base info

This patch should not bring in any functional changes.

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

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

6 years ago[SEH] Use the SEH personality on frontend-outlined funclets
Reid Kleckner [Fri, 13 Oct 2017 16:55:14 +0000 (16:55 +0000)]
[SEH] Use the SEH personality on frontend-outlined funclets

This allows __try inside __finally to work.

Fixes PR34939

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

6 years ago[CodeGen] EmitLoadOfReference() to generate TBAA info along with LValue base info
Ivan A. Kosarev [Fri, 13 Oct 2017 16:50:50 +0000 (16:50 +0000)]
[CodeGen] EmitLoadOfReference() to generate TBAA info along with LValue base info

This patch should not bring in any functional changes.

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

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

6 years ago[CodeGen] EmitLoadOfPointer() to generate TBAA info along with LValue base info
Ivan A. Kosarev [Fri, 13 Oct 2017 16:47:22 +0000 (16:47 +0000)]
[CodeGen] EmitLoadOfPointer() to generate TBAA info along with LValue base info

This patch should not bring in any functional changes.

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

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

6 years ago[CodeGen] EmitCXXMemberDataPointerAddress() to generate TBAA info along with LValue...
Ivan A. Kosarev [Fri, 13 Oct 2017 16:38:32 +0000 (16:38 +0000)]
[CodeGen] EmitCXXMemberDataPointerAddress() to generate TBAA info along with LValue base info

This patch should not bring in any functional changes.

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

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

6 years agoHide "#pragma optimize("", off)" from clang when it pretends to be MSVC 2017
Reid Kleckner [Fri, 13 Oct 2017 16:18:32 +0000 (16:18 +0000)]
Hide "#pragma optimize("", off)" from clang when it pretends to be MSVC 2017

These pragmas work around a bug in VC 1911 that isn't present in clang,
and clang warns about them.

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

6 years agoFix an unused-variable warning.
Haojian Wu [Fri, 13 Oct 2017 15:37:53 +0000 (15:37 +0000)]
Fix an unused-variable warning.

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

6 years agoRemove an unused variable.
Haojian Wu [Fri, 13 Oct 2017 15:34:03 +0000 (15:34 +0000)]
Remove an unused variable.

Fix -Wunused-but-set-variable warning.

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

6 years agoFix regression of test/CodeGenOpenCL/address-spaces.cl on ppc
Yaxun Liu [Fri, 13 Oct 2017 13:53:06 +0000 (13:53 +0000)]
Fix regression of test/CodeGenOpenCL/address-spaces.cl on ppc

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

6 years ago[OpenCL] Add LangAS::opencl_private to represent private address space in AST
Yaxun Liu [Fri, 13 Oct 2017 03:37:48 +0000 (03:37 +0000)]
[OpenCL] Add LangAS::opencl_private to represent private address space in AST

Currently Clang uses default address space (0) to represent private address space for OpenCL
in AST. There are two issues with this:

Multiple address spaces including private address space cannot be diagnosed.
There is no mangling for default address space. For example, if private int* is emitted as
i32 addrspace(5)* in IR. It is supposed to be mangled as PUAS5i but it is mangled as
Pi instead.

This patch attempts to represent OpenCL private address space explicitly in AST. It adds
a new enum LangAS::opencl_private and adds it to the variable types which are implicitly
private:

automatic variables without address space qualifier

function parameter

pointee type without address space qualifier (OpenCL 1.2 and below)

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

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

6 years ago[clang] Enable clang build with LLVM_BUILD_INSTRUMENTED without setting LLVM_PROFTDATA
Alexander Shaposhnikov [Fri, 13 Oct 2017 03:21:39 +0000 (03:21 +0000)]
[clang] Enable clang build with LLVM_BUILD_INSTRUMENTED without setting LLVM_PROFTDATA

At the moment if LLVM_BUILD_INSTRUMENTED is set to True
one has to set LLVM_PROFTDATA even if it's not really used
(because of message(FATAL_ERROR ...)).
Building the instrumented version of Clang can be useful even if
one doesn't plan to build the target generate-profdata
(currently that target would only compile utils/perf-training/cxx/hello_world.cpp).
For example, one can run the instrumented version of Clang
via a separate build system against a different codebase,
collect/analyze the profiles and merge them by llvm-profdata later.

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

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

6 years agoSupport for destroying operator delete, per C++2a proposal P0722.
Richard Smith [Fri, 13 Oct 2017 01:55:36 +0000 (01:55 +0000)]
Support for destroying operator delete, per C++2a proposal P0722.

This feature is not (yet) approved by the C++ committee, so this is liable to
be reverted or significantly modified based on committee feedback.

No functionality change intended for existing code (a new type must be defined
in namespace std to take advantage of this feature).

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

6 years agoRecommit r315087 "[refactor] add support for refactoring options"
Alex Lorenz [Fri, 13 Oct 2017 01:53:13 +0000 (01:53 +0000)]
Recommit r315087 "[refactor] add support for refactoring options"

The recommit fixes a UB bug that occurred only on a small number of bots.

Original message:

This commit adds initial support for refactoring options. One can now use
optional and required std::string options.

This commit also adds a NewNameOption for the local-rename refactoring action to
allow rename to work with custom names.

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

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

6 years ago[MS] Don't bail on replacing dllimport vbase dtors with base dtors
Reid Kleckner [Fri, 13 Oct 2017 00:53:02 +0000 (00:53 +0000)]
[MS] Don't bail on replacing dllimport vbase dtors with base dtors

Fix PR32990 by effectively reverting r283063 and solving it a different
way.

We want to limit the hack to not replace equivalent available_externally
dtors specifically to libc++, which uses always_inline. It seems certain
versions of libc++ do not provide all the symbols that an explicit
template instantiation is expected to provide.

If we get to the code that forms a real alias, only *then* check if this
is available_externally, and do that by asking a better question, which
is "is this a declaration for the linker?", because *that's* what means
we can't form an alias to it.

As a follow-on simplification, remove the InEveryTU parameter. Its last
use guarded this code for forming aliases, but we should never form
aliases to declarations, regardless of what we know about every TU.

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

6 years ago[Analyzer] Assume that CFBooleanRef const globals are non-null
George Karpenkov [Fri, 13 Oct 2017 00:51:41 +0000 (00:51 +0000)]
[Analyzer] Assume that CFBooleanRef const globals are non-null

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

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

6 years agoTypos in tutorial
Jan Korous [Fri, 13 Oct 2017 00:31:07 +0000 (00:31 +0000)]
Typos in tutorial

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

6 years agoHandle/assert on DK_Remark
Adam Nemet [Thu, 12 Oct 2017 23:56:54 +0000 (23:56 +0000)]
Handle/assert on DK_Remark

We don't generate remarks during inline assembly parsing so no need to handle
these for now.

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

6 years ago[Sema][ObjC] Complete merging ObjC methods before checking their
Akira Hatanaka [Thu, 12 Oct 2017 23:24:38 +0000 (23:24 +0000)]
[Sema][ObjC] Complete merging ObjC methods before checking their
overriding methods.

This should fix test case Analysis/retain-release.m that was failing on
the reverse iteration bot:

http://lab.llvm.org:8011/builders/reverse-iteration

The test used to fail because the loop in CheckObjCMethodOverrides would
merge attribute ns_returns_retained on methods while checking whether
the overriding methods were compatible. Since OverrideSearch::Overridden
is a SmallPtrSet and the order in which the elements of the set are
visited is non-deterministic, the test would fail when method 'clone' of
the protocol 'F18P' was visited before F18(Cat)'s method 'clone' was
visited.

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

6 years ago[Sema][Crash] Correctly handle an non-dependent noexcept expr in function template
Erich Keane [Thu, 12 Oct 2017 23:01:53 +0000 (23:01 +0000)]
[Sema][Crash] Correctly handle an non-dependent noexcept expr in function template

It seems that all of the other templated cases are handled correctly,
however the function template case was not correctly handled. This
patch recovers from this condition by setting the function to noexcept
after diagnosing. Previously it simply set NoexceptExpr to null,
which caused an Assert when this was evaluated during substitution.

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

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

6 years agoRevert "[Sema] Diagnose tautological comparison with type's min/max values"
Roman Lebedev [Thu, 12 Oct 2017 22:03:20 +0000 (22:03 +0000)]
Revert "[Sema] Diagnose tautological comparison with type's min/max values"

This reverts r315614,r315615,r315621,r315622
Breaks http://bb9.pgr.jp/#/builders/20/builds/59

/home/bb9/bootstrap-clang-libcxx-lld-i686-linux/llvm-project/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp:95:17: error: comparison 'long long' > 9223372036854775807 is always false [-Werror,-Wtautological-constant-compare]
    if (max_sec > Lim::max()) return false;
        ~~~~~~~ ^ ~~~~~~~~~~
/home/bb9/bootstrap-clang-libcxx-lld-i686-linux/llvm-project/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp:124:13: error: comparison 'long long' < -9223372036854775808 is always false [-Werror,-Wtautological-constant-compare]
    if (sec < Lim::min() || sec > Lim::max())   return false;
        ~~~ ^ ~~~~~~~~~~
/home/bb9/bootstrap-clang-libcxx-lld-i686-linux/llvm-project/libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp:124:33: error: comparison 'long long' > 9223372036854775807 is always false [-Werror,-Wtautological-constant-compare]
    if (sec < Lim::min() || sec > Lim::max())   return false;
                            ~~~ ^ ~~~~~~~~~~
3 errors generated.
--

I'm not yet sure what is the proper fix.

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

6 years ago[cmake] Rename LIB_FUZZING_ENGINE to LLVM_LIB_FUZZING_ENGINE.
Matt Morehouse [Thu, 12 Oct 2017 22:00:09 +0000 (22:00 +0000)]
[cmake] Rename LIB_FUZZING_ENGINE to LLVM_LIB_FUZZING_ENGINE.

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

6 years ago[lit] Raise the logic for enabling clang & lld substitutions to llvm.
Zachary Turner [Thu, 12 Oct 2017 21:56:05 +0000 (21:56 +0000)]
[lit] Raise the logic for enabling clang & lld substitutions to llvm.

This paves the way for other projects which might /use/ clang or
lld but not necessarily need to the full set of functionality
available to clang and lld tests to be able to have a basic set
of substitutions that allow a project to run the clang or lld
executables.

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

6 years ago[CUDA] Added __hmma_m16n16k16_* builtins to support mma instructions on sm_70
Artem Belevich [Thu, 12 Oct 2017 21:32:19 +0000 (21:32 +0000)]
[CUDA] Added __hmma_m16n16k16_* builtins to support mma instructions on sm_70

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

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

6 years ago[Analysis] Un-silence -Wtautological-unsigned-zero-compare in null-deref-ps.c
Roman Lebedev [Thu, 12 Oct 2017 21:15:26 +0000 (21:15 +0000)]
[Analysis] Un-silence -Wtautological-unsigned-zero-compare in null-deref-ps.c

Stage-2 builds failed:

error: 'warning' diagnostics expected but not seen:
  File /home/buildbot/modules-slave-2/clang-x86_64-linux-selfhost-modules-2/llvm.src/tools/clang/test/Analysis/null-deref-ps.c Line 238: always true

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

6 years ago[SemaChecking] Suppress a GCC warning. NFCI.
Davide Italiano [Thu, 12 Oct 2017 21:08:29 +0000 (21:08 +0000)]
[SemaChecking] Suppress a GCC warning. NFCI.

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

6 years ago[Analysis] Silence -Wtautological-constant-compare in two tests
Roman Lebedev [Thu, 12 Oct 2017 20:27:41 +0000 (20:27 +0000)]
[Analysis] Silence -Wtautological-constant-compare in two tests

Yes, did not check that. Need to do better :(
I do not believe it makes sense to do expect that warning here.

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

6 years ago[Sema] Diagnose tautological comparison with type's min/max values
Roman Lebedev [Thu, 12 Oct 2017 20:16:51 +0000 (20:16 +0000)]
[Sema] Diagnose tautological comparison with type's min/max values

Summary:
Currently, clang only diagnoses completely out-of-range comparisons (e.g. `char` and constant `300`),
and comparisons of unsigned and `0`. But gcc also does diagnose the comparisons with the
`std::numeric_limits<>::max()` / `std::numeric_limits<>::min()` so to speak

Finally Fixes https://bugs.llvm.org/show_bug.cgi?id=34147
Continuation of https://reviews.llvm.org/D37565

Reviewers: rjmccall, rsmith, aaron.ballman

Reviewed By: rsmith

Subscribers: rtrieu, jroelofs, cfe-commits

Tags: #clang

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

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

6 years ago[OPENMP] Fix PR34927: Emit initializer for reduction array with declare
Alexey Bataev [Thu, 12 Oct 2017 20:03:39 +0000 (20:03 +0000)]
[OPENMP] Fix PR34927: Emit initializer for reduction array with declare
reduction.

If the reduction is an array or an array section and reduction operation
is declare reduction without initializer, it may lead to crash.

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

6 years ago[X86] Add CLWB intrinsic. clang part
Craig Topper [Thu, 12 Oct 2017 18:57:15 +0000 (18:57 +0000)]
[X86] Add CLWB intrinsic. clang part

Reviewers: RKSimon, zvi, igorb

Reviewed By: RKSimon

Subscribers: cfe-commits

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

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

6 years ago[clang-format] Allow building fuzzer with OSS-Fuzz flags.
Matt Morehouse [Thu, 12 Oct 2017 18:39:10 +0000 (18:39 +0000)]
[clang-format] Allow building fuzzer with OSS-Fuzz flags.

Reviewers: kcc, bogner

Reviewed By: kcc

Subscribers: cfe-commits, mgorny

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

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

6 years ago[X86] Use -ffreestanding instead of using the mm_malloc.h include guard hack on more...
Craig Topper [Thu, 12 Oct 2017 17:21:01 +0000 (17:21 +0000)]
[X86] Use -ffreestanding instead of using the mm_malloc.h include guard hack on more of the builtin tests.

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

6 years ago[OPENMP] Fix PR34926: Fix handling of the array sections passed as
Alexey Bataev [Thu, 12 Oct 2017 15:18:41 +0000 (15:18 +0000)]
[OPENMP] Fix PR34926: Fix handling of the array sections passed as
function params.

Codegen could crash if the array section base expression is the
function parameter.

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

6 years ago[OPENMP] Fix PR34925: Fix getting thread_id lvalue for inlined regions
Alexey Bataev [Thu, 12 Oct 2017 13:51:32 +0000 (13:51 +0000)]
[OPENMP] Fix PR34925: Fix getting thread_id lvalue for inlined regions
in C.

If we try to get the lvalue for thread_id variables in inlined regions,
we did not use the correct version of function. Fixed this bug by adding
overrided version of the function getThreadIDVariableLValue for inlined
regions.

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

6 years ago[CodeGen] Generate TBAA info along with LValue base info
Ivan A. Kosarev [Thu, 12 Oct 2017 11:29:46 +0000 (11:29 +0000)]
[CodeGen] Generate TBAA info along with LValue base info

This patch enables explicit generation of TBAA information in all
cases where LValue base info is propagated or constructed in
non-trivial ways. Eventually, we will consider each of these
cases to make sure the TBAA information is correct and not too
conservative. For now, we just fall back to generating TBAA info
from the access type.

This patch should not bring in any functional changes.

This is part of D38126 reworked to be a separate patch to
simplify review.

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

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

6 years agoFix warnings. [-Wdocumentation]
NAKAMURA Takumi [Thu, 12 Oct 2017 09:42:14 +0000 (09:42 +0000)]
Fix warnings. [-Wdocumentation]

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

6 years agoSVal::getAsSymbol(bool IncludeBaseRegions): Follow clang/StaticAnalyzer/Core/PathSens...
NAKAMURA Takumi [Thu, 12 Oct 2017 09:42:12 +0000 (09:42 +0000)]
SVal::getAsSymbol(bool IncludeBaseRegions): Follow clang/StaticAnalyzer/Core/PathSensitive/SVals.h, s/IncludeBaseRegion/IncludeBaseRegions/g [-Wdocumentation]

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

6 years agoSplit the AlignTrailingComments on several lines. The comments were applied to the...
Sylvestre Ledru [Thu, 12 Oct 2017 08:07:53 +0000 (08:07 +0000)]
Split the AlignTrailingComments on several lines. The comments were applied to the right columns

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

6 years ago[COFF, ARM64] Add MS builtins __dmb, __dsb, __isb
Martin Storsjo [Thu, 12 Oct 2017 07:05:37 +0000 (07:05 +0000)]
[COFF, ARM64] Add MS builtins __dmb, __dsb, __isb

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

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

6 years agoclang/module.modulemap: Create Clang_Frontend_CodeGenOptions to remove some dependenc...
NAKAMURA Takumi [Thu, 12 Oct 2017 06:39:44 +0000 (06:39 +0000)]
clang/module.modulemap: Create Clang_Frontend_CodeGenOptions to remove some dependencies in clangBasic.

- Clang_Analysis
- Clang_C
- Clang_Frontend
- Clang_Lex
- Clang_Sema
- Clang_Serialization
- Clang_StaticAnalyzer_Core

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

6 years ago[X86] Remove a few unnecessary check lines from the predefined-arch-macros test.
Craig Topper [Thu, 12 Oct 2017 02:06:17 +0000 (02:06 +0000)]
[X86] Remove a few unnecessary check lines from the predefined-arch-macros test.

These were testing OS macros and clang/llvm macros.

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

6 years agoRevert "[ADT] Make Twine's copy constructor private."
Zachary Turner [Wed, 11 Oct 2017 23:54:34 +0000 (23:54 +0000)]
Revert "[ADT] Make Twine's copy constructor private."

This reverts commit 4e4ee1c507e2707bb3c208e1e1b6551c3015cbf5.

This is failing due to some code that isn't built on MSVC
so I didn't catch.  Not immediately obvious how to fix this
at first glance, so I'm reverting for now.

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

6 years agoUpdate cc1as_main for MCCodeEmitter ownership change in r315531.
Lang Hames [Wed, 11 Oct 2017 23:35:27 +0000 (23:35 +0000)]
Update cc1as_main for MCCodeEmitter ownership change in r315531.

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

6 years ago[ADT] Make Twine's copy constructor private.
Zachary Turner [Wed, 11 Oct 2017 23:33:06 +0000 (23:33 +0000)]
[ADT] Make Twine's copy constructor private.

There's a lot of misuse of Twine scattered around LLVM.  This
ranges in severity from benign (returning a Twine from a function
by value that is just a string literal) to pretty sketchy (storing
a Twine by value in a class).  While there are some uses for
copying Twines, most of the very compelling ones are confined
to the Twine class implementation itself, and other uses are
either dubious or easily worked around.

This patch makes Twine's copy constructor private, and fixes up
all callsites.

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

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

6 years ago[Driver] Export symbols needed to use profile runtime
Vedant Kumar [Wed, 11 Oct 2017 21:54:09 +0000 (21:54 +0000)]
[Driver] Export symbols needed to use profile runtime

Apple's API verification tool (tapi) checks that the symbols exported
from a program match a whitelist. When the program uses the profile
runtime, some additional symbols which are typically not part of the
regular whitelist must be exported.

If we're using symbol export directives along with the profile runtime
on Darwin, the driver needs to export the additional symbols to avoid
verification failures.

rdar://problem/30067753

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

6 years ago[X86] Add support for 'amdfam17h' to __builtin_cpu_is to match gcc.
Craig Topper [Wed, 11 Oct 2017 21:42:02 +0000 (21:42 +0000)]
[X86] Add support for 'amdfam17h' to __builtin_cpu_is to match gcc.

The compiler-rt implementation already supported it, it just wasn't exposed.

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

6 years ago[Analyzer] Support bodyfarming libstdc++ implementation of std::call_once.
George Karpenkov [Wed, 11 Oct 2017 20:53:01 +0000 (20:53 +0000)]
[Analyzer] Support bodyfarming libstdc++ implementation of std::call_once.

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

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

6 years ago[clang-fuzzer] Build with newer protobuf-mutator.
Matt Morehouse [Wed, 11 Oct 2017 20:45:10 +0000 (20:45 +0000)]
[clang-fuzzer] Build with newer protobuf-mutator.

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

6 years ago[Analyzer] Fix introduced regression: properly check for nullable attribute.
George Karpenkov [Wed, 11 Oct 2017 19:13:15 +0000 (19:13 +0000)]
[Analyzer] Fix introduced regression: properly check for nullable attribute.

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

6 years ago[Analyzer] Remove dead code from testing scripts
George Karpenkov [Wed, 11 Oct 2017 18:42:39 +0000 (18:42 +0000)]
[Analyzer] Remove dead code from testing scripts

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

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

6 years ago[Analyzer] Assume that string-like const globals are non-nil.
George Karpenkov [Wed, 11 Oct 2017 18:39:40 +0000 (18:39 +0000)]
[Analyzer] Assume that string-like const globals are non-nil.

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

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

6 years ago[clang-fuzzer] Allow linking with any fuzzing engine.
Matt Morehouse [Wed, 11 Oct 2017 18:29:24 +0000 (18:29 +0000)]
[clang-fuzzer] Allow linking with any fuzzing engine.

Summary:
Makes clang-[proto-]fuzzer compatible with flags specified by OSS-Fuzz.

https://llvm.org/pr34314

Reviewers: vitalybuka, kcc

Reviewed By: kcc

Subscribers: cfe-commits, mgorny

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

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

6 years ago[X86] Correct type for argument to clflushopt intrinsic.
Craig Topper [Wed, 11 Oct 2017 16:06:08 +0000 (16:06 +0000)]
[X86] Correct type for argument to clflushopt intrinsic.

Summary: According to Intel docs this should take void const *. We had char*. The lack of const is the main issue.

Reviewers: RKSimon, zvi, igorb

Reviewed By: igorb

Subscribers: llvm-commits

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

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

6 years ago[OPENMP] Remove extra if, NFC.
Alexey Bataev [Wed, 11 Oct 2017 15:56:38 +0000 (15:56 +0000)]
[OPENMP] Remove extra if, NFC.

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

6 years agoReland "[clang-fuzzer] Allow building without coverage instrumentation."
Matt Morehouse [Wed, 11 Oct 2017 15:51:12 +0000 (15:51 +0000)]
Reland "[clang-fuzzer] Allow building without coverage instrumentation."

This relands r315336 after fixing bot breakage.

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

6 years ago[OPENMP] Fix PR34916: Crash on mixing taskloop|tasks directives.
Alexey Bataev [Wed, 11 Oct 2017 15:29:40 +0000 (15:29 +0000)]
[OPENMP] Fix PR34916: Crash on mixing taskloop|tasks directives.

If both taskloop and task directives are used at the same time in one
program, we may ran into the situation when the particular type for task
directive is reused for taskloop directives. Patch fixes this problem.

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

6 years ago[clang-fuzzer] Fix shared library dependencies.
Matt Morehouse [Wed, 11 Oct 2017 15:13:53 +0000 (15:13 +0000)]
[clang-fuzzer] Fix shared library dependencies.

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

6 years ago[Analyzer] Clarify error messages for undefined result
Daniel Marjamaki [Wed, 11 Oct 2017 14:49:35 +0000 (14:49 +0000)]
[Analyzer] Clarify error messages for undefined result

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

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

6 years ago[clang-rename] Add more unittest.
Haojian Wu [Wed, 11 Oct 2017 14:00:42 +0000 (14:00 +0000)]
[clang-rename] Add more unittest.

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

6 years ago[OpenCL] Allow function declaration with empty argument list.
Alexey Bader [Wed, 11 Oct 2017 11:16:31 +0000 (11:16 +0000)]
[OpenCL] Allow function declaration with empty argument list.

Treat 'f()' as 'f(void)' rather than a function w/o a prototype.

Reviewers: Anastasia, yaxunl

Reviewed By: Anastasia, yaxunl

Subscribers: cfe-commits, echuraev, chapuni

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

Re-apply revision 306653.

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

6 years ago[clang-rename] Don't add prefix qualifiers to the declaration and definition of the...
Haojian Wu [Wed, 11 Oct 2017 11:15:48 +0000 (11:15 +0000)]
[clang-rename] Don't add prefix qualifiers to the declaration and definition of the renamed symbol.

Reviewers: ioeric

Reviewed By: ioeric

Subscribers: klimek, cfe-commits, arphaman

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

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

6 years agoRevert r314955: "Remove PendingBody mechanism for function and ObjC method deserializ...
Daniel Jasper [Wed, 11 Oct 2017 07:47:54 +0000 (07:47 +0000)]
Revert r314955: "Remove PendingBody mechanism for function and ObjC method deserialization."

This is breaking a build of https://github.com/abseil/abseil-cpp and so
likely not really NFC. Also reverted subsequent r314956/7.

I'll forward reproduction instructions to Richard.

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

6 years agoReorder.
NAKAMURA Takumi [Wed, 11 Oct 2017 04:54:05 +0000 (04:54 +0000)]
Reorder.

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

6 years agoClangCodeGenTests: Update libdeps in rL315392, +clangAST.
NAKAMURA Takumi [Wed, 11 Oct 2017 04:20:19 +0000 (04:20 +0000)]
ClangCodeGenTests: Update libdeps in rL315392, +clangAST.

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

6 years agoUpdate cc1as_main for MCAsmBackend ownership change in r315410.
Lang Hames [Wed, 11 Oct 2017 01:58:08 +0000 (01:58 +0000)]
Update cc1as_main for MCAsmBackend ownership change in r315410.

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

6 years ago[modules] Fix visibility checking for using declarations via ADL.
Richard Smith [Wed, 11 Oct 2017 01:49:57 +0000 (01:49 +0000)]
[modules] Fix visibility checking for using declarations via ADL.

We want to check whether the using (shadow) declaration itself is visible, not
whether its target is visible.

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

6 years ago[modules] Only take visible using-directives into account during name lookup.
Richard Smith [Wed, 11 Oct 2017 01:19:11 +0000 (01:19 +0000)]
[modules] Only take visible using-directives into account during name lookup.

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

6 years agoA '<' with a trigraph '#' is not a valid editor placeholder
Alex Lorenz [Wed, 11 Oct 2017 00:41:20 +0000 (00:41 +0000)]
A '<' with a trigraph '#' is not a valid editor placeholder

Credit to OSS-Fuzz for discovery:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3137#c5

rdar://34923985

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

6 years ago[Modules TS] Diagnose missing/duplicate module-declaration.
Richard Smith [Wed, 11 Oct 2017 00:36:56 +0000 (00:36 +0000)]
[Modules TS] Diagnose missing/duplicate module-declaration.

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

6 years agoInclude getting generated struct offsets in CodegenABITypes
Adrian Prantl [Tue, 10 Oct 2017 23:54:21 +0000 (23:54 +0000)]
Include getting generated struct offsets in CodegenABITypes

This change adds a new function, CodeGen::getFieldNumber, that
enables a user of clang's code generation to get the field number
in a generated LLVM IR struct that corresponds to a particular field
in a C struct.

It is important to expose this information in Clang's code generation
interface because there is no reasonable way for users of Clang's code
generation to get this information. In particular:

LLVM struct types do not include field names.
Clang adds a non-trivial amount of logic to the code generation of LLVM IR types for structs, in particular to handle padding and bit fields.

Patch by Michael Ferguson!

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

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

6 years ago[Modules TS] Diagnose attempts to enter module implementation units without the modul...
Richard Smith [Tue, 10 Oct 2017 22:35:27 +0000 (22:35 +0000)]
[Modules TS] Diagnose attempts to enter module implementation units without the module interface being available.

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

6 years ago[Modules TS] Module ownership semantics for redeclarations.
Richard Smith [Tue, 10 Oct 2017 22:33:17 +0000 (22:33 +0000)]
[Modules TS] Module ownership semantics for redeclarations.

When declaring an entity in the "purview" of a module, it's never a
redeclaration of an entity in the purview of a default module or in no module
("in the global module"). Don't consider those other declarations as possible
redeclaration targets if they're not visible, and reject any cases where we
pick a prior visible declaration that violates this rule.

This reinstates r315251 and r315256, reverted in r315309 and r315308
respectively, tweaked to avoid triggering a linkage calculation when declaring
implicit special members (this exposed our pre-existing issue with typedef
names for linkage changing the linkage of types whose linkage has already been
computed and cached in more cases). A testcase for that regression has been
added in r315366.

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

6 years agoSupport: Have directory_iterator::status() return FindFirstFileEx/FindNextFile result...
Peter Collingbourne [Tue, 10 Oct 2017 22:19:46 +0000 (22:19 +0000)]
Support: Have directory_iterator::status() return FindFirstFileEx/FindNextFile results on Windows.

This allows clients to avoid an unnecessary fs::status() call on each
directory entry. Because the information returned by FindFirstFileEx
is a subset of the information returned by a regular status() call,
I needed to extract a base class from file_status that contains only
that information.

On my machine, this reduces the time required to enumerate a ThinLTO
cache directory containing 520k files from almost 4 minutes to less
than 2 seconds.

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

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

6 years agoFix indexer crash for default template template parameter value
Jan Korous [Tue, 10 Oct 2017 21:09:49 +0000 (21:09 +0000)]
Fix indexer crash for default template template parameter value

rdar://33058798

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

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

6 years agoAdd test for regression caused by reverted patch r315251.
Richard Smith [Tue, 10 Oct 2017 21:07:44 +0000 (21:07 +0000)]
Add test for regression caused by reverted patch r315251.

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

6 years ago[CGExprScalar] In EmitCompare trunc the result if it has different type as E->getType()
Guozhi Wei [Tue, 10 Oct 2017 20:31:27 +0000 (20:31 +0000)]
[CGExprScalar] In EmitCompare trunc the result if it has different type as E->getType()

Usually compare expression should return i1 type, so EmitScalarConversion is called before return

return EmitScalarConversion(Result, CGF.getContext().BoolTy, E->getType(), E->getExprLoc());

But when ppc intrinsic is called to compare vectors, the ppc intrinsic can return i32 even E->getType() is BoolTy, in this case EmitScalarConversion does nothing, an i32 type result is returned and causes crash later.

This patch detects this case and truncates the result before return.

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

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

6 years agoRevert "[clang-fuzzer] Allow building without coverage instrumentation."
Matt Morehouse [Tue, 10 Oct 2017 20:13:13 +0000 (20:13 +0000)]
Revert "[clang-fuzzer] Allow building without coverage instrumentation."

This reverts r315336 due to build breakage with gcc.
http://lab.llvm.org:8011/builders/ubuntu-gcc7.1-werror/builds/2173

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

6 years ago[clang-fuzzer] Build proto-to-cxx with fuzzer-no-link.
Matt Morehouse [Tue, 10 Oct 2017 17:59:37 +0000 (17:59 +0000)]
[clang-fuzzer] Build proto-to-cxx with fuzzer-no-link.

Makes it possible to build with any sanitizer or none at all.

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

6 years ago[lit] Add host_cxx to lit config
Francis Ricci [Tue, 10 Oct 2017 17:53:45 +0000 (17:53 +0000)]
[lit] Add host_cxx to lit config

Summary: This is required to get the clang version for sanitized builds.

Reviewers: zturner

Subscribers: llvm-commits

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

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

6 years ago[clang-fuzzer] Allow building without coverage instrumentation.
Matt Morehouse [Tue, 10 Oct 2017 17:41:43 +0000 (17:41 +0000)]
[clang-fuzzer] Allow building without coverage instrumentation.

Summary:
Compile with DummyClangFuzzer.cpp as entry point rather than
libFuzzer's main when coverage instrumentation is missing.

https://llvm.org/pr34314

Reviewers: kcc, bogner, vitalybuka

Reviewed By: vitalybuka

Subscribers: cfe-commits, mgorny

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

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

6 years agoFor dllexport class templates, export specializations of member functions (PR34849...
Hans Wennborg [Tue, 10 Oct 2017 16:53:25 +0000 (16:53 +0000)]
For dllexport class templates, export specializations of member functions (PR34849) (take 2)

This is a re-commit of r315025, but making sure to only apply this to
specializations of class template member functions; i.e. not when the function
itself is a template.

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

6 years ago[OPENMP] Add default codegen|tests for 'target parallel for[ simd]'
Alexey Bataev [Tue, 10 Oct 2017 14:14:43 +0000 (14:14 +0000)]
[OPENMP] Add default codegen|tests for 'target parallel for[ simd]'
constructs.

Added default codegen for 'target parallel for' construct + tests for
default codegen of 'target parallel for[ simd]' constructs.

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

6 years agoFix a (slightly weird) 'comma operator within array index expression' warning on...
Simon Pilgrim [Tue, 10 Oct 2017 13:56:17 +0000 (13:56 +0000)]
Fix a (slightly weird) 'comma operator within array index expression' warning on VS builds. NFCI.

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

6 years agoRevert "[Modules TS] Module ownership semantics for redeclarations."
Eric Liu [Tue, 10 Oct 2017 13:09:40 +0000 (13:09 +0000)]
Revert "[Modules TS] Module ownership semantics for redeclarations."

This reverts commit r315251. See the original commit thread for reason.

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

6 years agoRevert "[Modules TS] Avoid computing the linkage of the enclosing DeclContext for...
Eric Liu [Tue, 10 Oct 2017 13:00:18 +0000 (13:00 +0000)]
Revert "[Modules TS] Avoid computing the linkage of the enclosing DeclContext for a declaration in the global module."

This reverts commit r315256. See the original commit thread for reason.

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

6 years ago[analyzer] MisusedMovedObject: Fix state-resetting a base-class sub-object.
Artem Dergachev [Tue, 10 Oct 2017 11:55:56 +0000 (11:55 +0000)]
[analyzer] MisusedMovedObject: Fix state-resetting a base-class sub-object.

If a method is resetting the state of an object that was moved from, it should
be safe to use this object again. However if the method was defined in a parent
class, but used in a child class, the reset didn't happen from the checker's
perspective.

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

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

6 years ago[analyzer] MisusedMovedObject: Add printState() method for self-debugging.
Artem Dergachev [Tue, 10 Oct 2017 11:50:45 +0000 (11:50 +0000)]
[analyzer] MisusedMovedObject: Add printState() method for self-debugging.

This method injects additional information into program state dumps,
describing which objects have been moved from.

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

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

6 years ago[analyzer] PthreadLockChecker: Add printState() method for self-debugging.
Artem Dergachev [Tue, 10 Oct 2017 11:49:09 +0000 (11:49 +0000)]
[analyzer] PthreadLockChecker: Add printState() method for self-debugging.

This method injects additional information into program state dumps,
describing states of mutexes tracked by the checker.

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

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

6 years ago[analyzer] Implement pointer arithmetic on constants
Gabor Horvath [Tue, 10 Oct 2017 11:01:49 +0000 (11:01 +0000)]
[analyzer] Implement pointer arithmetic on constants

Patch by: Rafael Stahl!

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

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

6 years ago[clang-refactor] Fix clang-tidy misc-move-const-arg warning.
Haojian Wu [Tue, 10 Oct 2017 09:48:38 +0000 (09:48 +0000)]
[clang-refactor] Fix clang-tidy misc-move-const-arg warning.

NFC

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

6 years ago[CodeGen] Do not construct complete LValue base info in trivial cases
Ivan A. Kosarev [Tue, 10 Oct 2017 09:39:32 +0000 (09:39 +0000)]
[CodeGen] Do not construct complete LValue base info in trivial cases

Besides obvious code simplification, avoiding explicit creation
of LValueBaseInfo objects makes it easier to make TBAA
information to be part of such objects.

This is part of D38126 reworked to be a separate patch to
simplify review.

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

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

6 years agoFix small nits in clang-refactor doc.
Haojian Wu [Tue, 10 Oct 2017 09:00:56 +0000 (09:00 +0000)]
Fix small nits in clang-refactor doc.

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

6 years ago[ASTMatchers] Don't create a copy of a std::set when iterating over it.
Benjamin Kramer [Tue, 10 Oct 2017 07:21:34 +0000 (07:21 +0000)]
[ASTMatchers] Don't create a copy of a std::set when iterating over it.

This is a bit awkward because lookup returns a copy instead of a
reference. No functionality change intended.

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

6 years ago[Sema][ObjC] Preserve syntactic sugar when removing
Akira Hatanaka [Tue, 10 Oct 2017 01:24:33 +0000 (01:24 +0000)]
[Sema][ObjC] Preserve syntactic sugar when removing
ARCReclaimReturnedObject cast.

This is a follow-up to r314370.

Rather than throwing away the enclosing parentheses, this commit walks
down the expression until an ARCReclaimReturnedObject cast is found and
removes just the cast, preserving the syntactic sugar expressions
(parens and casts) that were visited up to that point.

rdar://problem/34705720

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

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