]> granicus.if.org Git - clang/log
clang
8 years agoEmbed bitcode in object file (clang cc1 part)
Steven Wu [Wed, 11 May 2016 16:26:03 +0000 (16:26 +0000)]
Embed bitcode in object file (clang cc1 part)

Summary:
Teach clang to embed bitcode inside bitcode. When -fembed-bitcode cc1
option is used, clang will embed both the input bitcode and cc1
commandline into the bitcode in special sections before compiling to
the object file.  Using -fembed-bitcode-marker will only introduce a
marker in both sections.

Depends on D17390

Reviewers: rsmith

Subscribers: yaron.keren, vsk, cfe-commits

Differential Revision: http://reviews.llvm.org/D17392

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

8 years agoUpdate clang support on recent Haiku
Reid Kleckner [Wed, 11 May 2016 16:19:05 +0000 (16:19 +0000)]
Update clang support on recent Haiku

[ Copied from https://llvm.org/bugs/show_bug.cgi?id=26404 ]

clang support on Haiku is lagging a bit, and missing on x86_64.

This patch updates support for x86 and add support for x86_64. It should
apply directly to trunk and it's harmless in the sense that it only
affects Haiku.

Reviewers: rnk, rsmith

Patch by Jérôme Duval

Differential Revision: http://reviews.llvm.org/D16797

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

8 years ago[Hexagon] Avoid spurious failures in test/Driver/hexagon-toolchain-elf.c
Krzysztof Parzyszek [Wed, 11 May 2016 16:11:22 +0000 (16:11 +0000)]
[Hexagon] Avoid spurious failures in test/Driver/hexagon-toolchain-elf.c

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

8 years ago[tooling] FixItHint Tooling refactoring
Etienne Bergeron [Wed, 11 May 2016 14:31:39 +0000 (14:31 +0000)]
[tooling] FixItHint Tooling refactoring

Summary:
This is the refactoring to lift some FixItHint into tooling.
used by: http://reviews.llvm.org/D19807

Reviewers: klimek, alexfh

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D19941

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

8 years ago[clang][AVX512] completing missing set intrinsics
Michael Zuckerman [Wed, 11 May 2016 11:41:29 +0000 (11:41 +0000)]
[clang][AVX512] completing missing set intrinsics

Differential Revision: http://reviews.llvm.org/D20099

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

8 years ago[clang][AVX512] completing missing intrinsics for [vpermt2d|vptestm] instruction...
Michael Zuckerman [Wed, 11 May 2016 11:21:18 +0000 (11:21 +0000)]
[clang][AVX512] completing missing intrinsics for [vpermt2d|vptestm] instruction set.

Differential Revision: http://reviews.llvm.org/D20096

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

8 years agoHopefully bring llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast back to life
Sean Silva [Wed, 11 May 2016 04:04:59 +0000 (04:04 +0000)]
Hopefully bring llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast back to life

Bruno made a couple valiant attempts but the bot is still red.

This reverts r269100 (primary commit), r269108 (fix attempt), r269133
(fix attempt).

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

8 years ago[Sema] Fix value-dependent enable_if bug.
George Burgess IV [Wed, 11 May 2016 01:38:27 +0000 (01:38 +0000)]
[Sema] Fix value-dependent enable_if bug.

This patch fixes a bug where we would assume all value-dependent
enable_if conditions give successful results.

Instead, we consider value-dependent enable_if conditions to always
fail. While this isn't ideal, this is the best we can realistically do
without changing both enable_if's semantics and large parts of Sema
(specifically, all of the parts that don't expect type dependence to
come out of nowhere, and that may interact with overload resolution).

Differential Revision: http://reviews.llvm.org/D20130

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

8 years agoDisable -Wcast-calling-convention by default (follow-up to r269116)
Hans Wennborg [Wed, 11 May 2016 00:49:20 +0000 (00:49 +0000)]
Disable -Wcast-calling-convention by default (follow-up to r269116)

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

8 years ago[VFS] One more unittest change to fix win10 buildbot
Bruno Cardoso Lopes [Tue, 10 May 2016 22:30:01 +0000 (22:30 +0000)]
[VFS] One more unittest change to fix win10 buildbot

http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/5110
Follow up from r269100.

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

8 years agoWildcard away paths in fixit CHECKs in my last testcase
Reid Kleckner [Tue, 10 May 2016 21:10:25 +0000 (21:10 +0000)]
Wildcard away paths in fixit CHECKs in my last testcase

Oops. :(

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

8 years agoAdd -Wcast-calling-convention to warn when casting away calling conventions
Reid Kleckner [Tue, 10 May 2016 21:00:03 +0000 (21:00 +0000)]
Add -Wcast-calling-convention to warn when casting away calling conventions

Summary:
This only warns on casts of the address of a function defined in the
current TU. In this case, the fix is likely to be local and the warning
useful.

Here are some things we could experiment with in the future:
- Fire on declarations as well as definitions
- Limit the warning to non-void function prototypes
- Limit the warning to mismatches of caller and callee cleanup CCs

This warning is currently off by default while we study its usefulness.

Reviewers: thakis, rtrieu

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D17348

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

8 years agoUpdate clang for LLVM API change.
Peter Collingbourne [Tue, 10 May 2016 20:23:29 +0000 (20:23 +0000)]
Update clang for LLVM API change.

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

8 years ago[VFS] Change unittest to try appeasing win10 buildbot
Bruno Cardoso Lopes [Tue, 10 May 2016 20:20:55 +0000 (20:20 +0000)]
[VFS] Change unittest to try appeasing win10 buildbot

http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/5103
Follow up from r269100.

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

8 years ago[VFS] Reconstruct the VFS overlay tree for more accurate lookup
Bruno Cardoso Lopes [Tue, 10 May 2016 18:43:00 +0000 (18:43 +0000)]
[VFS] Reconstruct the VFS overlay tree for more accurate lookup

The way we currently build the internal VFS overlay representation leads
to inefficient path search and might yield wrong answers when asked for
recursive or regular directory iteration.

Currently, when reading an YAML file, each YAML root entry is placed
inside a new root in the filesystem overlay. In the crash reproducer, a
simple "@import Foundation" currently maps to 43 roots, and when looking
up paths, we traverse a directory tree for each of these different
roots, until we find a match (or don't). This has two consequences:

- It's slow.
- Directory iteration gives incomplete results since it only return
results within one root - since contents of the same directory can be
declared inside different roots, the result isn't accurate.

This is in part fault of the way we currently write out the YAML file
when emitting the crash reproducer - we could generate only one root and
that would make it fast and correct again. However, we should not rely
on how the client writes the YAML, but provide a good internal
representation regardless.

This patch builds a proper virtual directory tree out of the YAML
representation, allowing faster search and proper iteration. Besides the
crash reproducer, this potentially benefits other VFS clients.

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

8 years ago[WebAssembly] Reduce strictness of static destructor test
Derek Schuff [Tue, 10 May 2016 18:35:31 +0000 (18:35 +0000)]
[WebAssembly] Reduce strictness of static destructor test

It didn't work on non-asserts builds

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

8 years agoIntroduce CGCXXABI::canCallMismatchedFunctionType
Derek Schuff [Tue, 10 May 2016 17:44:55 +0000 (17:44 +0000)]
Introduce CGCXXABI::canCallMismatchedFunctionType

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

8 years agomore cleanup
Derek Schuff [Tue, 10 May 2016 17:44:52 +0000 (17:44 +0000)]
more cleanup

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

8 years agoClarify condition, remove redundant check
Derek Schuff [Tue, 10 May 2016 17:44:50 +0000 (17:44 +0000)]
Clarify condition, remove redundant check

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

8 years agoClean up condition, add ARM to test
Derek Schuff [Tue, 10 May 2016 17:44:48 +0000 (17:44 +0000)]
Clean up condition, add ARM to test

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

8 years agoDo not register incompatible C++ destructors with __cxa_atexit
Derek Schuff [Tue, 10 May 2016 17:44:46 +0000 (17:44 +0000)]
Do not register incompatible C++ destructors with __cxa_atexit

Summary:
For a static object with a nontrivial destructor, clang generates an
initializer function (__cxx_global_var_init) which registers that
object's destructor using __cxa_atexit. However some ABIs (ARM,
WebAssembly) use destructors that return 'this' instead of having void
return (which does not match the signature of function pointers passed
to __cxa_atexit). This results in undefined behavior when the destructors are
called. All the calling conventions I know of on ARM can tolerate this,
but WebAssembly requires the signatures of indirect calls to match the
called function.

This patch disables that direct registration of destructors for ABIs
that have this-returning destructors.

Subscribers: aemerson, jfb, cfe-commits, dschuff

Differential Revision: http://reviews.llvm.org/D19275

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

8 years agoclang/test/CodeGen/avx512f-builtins.c: Fix for -Asserts.
NAKAMURA Takumi [Tue, 10 May 2016 17:16:12 +0000 (17:16 +0000)]
clang/test/CodeGen/avx512f-builtins.c: Fix for -Asserts.

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

8 years ago[CMake] Pass LLVM_LIBDIR_SUFFIX into Compiler-RT
Chris Bieneman [Tue, 10 May 2016 16:10:22 +0000 (16:10 +0000)]
[CMake] Pass LLVM_LIBDIR_SUFFIX into Compiler-RT

Not passing this causes Compiler-RT to fail to configure on multi-lib systems.

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

8 years agoRemove unused diagnostic. NFC.
Benjamin Kramer [Tue, 10 May 2016 14:04:34 +0000 (14:04 +0000)]
Remove unused diagnostic. NFC.

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

8 years ago[Clang][AVX512] completing missing intrinsics [load/store]
Michael Zuckerman [Tue, 10 May 2016 13:13:54 +0000 (13:13 +0000)]
[Clang][AVX512] completing missing intrinsics [load/store]

Differential Revision: http://reviews.llvm.org/D20063

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

8 years ago[OPENMP 4.5] Initial codegen for 'priority' clause in task-based
Alexey Bataev [Tue, 10 May 2016 12:21:02 +0000 (12:21 +0000)]
[OPENMP 4.5] Initial codegen for 'priority' clause in task-based
directives.

OpenMP 4.5 supports clause 'priority' in task-based directives. Patch
adds initial codegen support for this clause in codegen.

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

8 years ago[Clang][AVX512] completing missing intrinsics [vmin/vmax]{sd|sq|uq|ud}.
Michael Zuckerman [Tue, 10 May 2016 11:34:19 +0000 (11:34 +0000)]
[Clang][AVX512] completing missing intrinsics [vmin/vmax]{sd|sq|uq|ud}.

Differential Revision: http://reviews.llvm.org/D20064

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

8 years ago[OPENMP 4.0] Fixed codegen for destructors in task-based directives.
Alexey Bataev [Tue, 10 May 2016 10:36:51 +0000 (10:36 +0000)]
[OPENMP 4.0] Fixed codegen for destructors in task-based directives.

If private variables require destructors call at the deletion of the
task, additional flag in task flags must be set. Patch fixes this
problem.

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

8 years ago[Clang][AVX512] completing missing intrinsics [vextractf].
Michael Zuckerman [Tue, 10 May 2016 10:14:50 +0000 (10:14 +0000)]
[Clang][AVX512] completing missing intrinsics [vextractf].

Differential Revision: http://reviews.llvm.org/D20061

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

8 years ago[OPENMP 4.5] Add codegen support in runtime for '[non]monotonic'
Alexey Bataev [Tue, 10 May 2016 09:57:36 +0000 (09:57 +0000)]
[OPENMP 4.5] Add codegen support in runtime for '[non]monotonic'
schedule modifiers.

Runtime library expects some additional data in schedule argument for
loop-based directives, that have additional schedule modifiers
'monotonic|nonmonotonic'.

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

8 years ago[Clang][AVX512] completing missing intrinsics [roundscale, ceil, floor]
Michael Zuckerman [Tue, 10 May 2016 07:30:58 +0000 (07:30 +0000)]
[Clang][AVX512] completing missing intrinsics [roundscale, ceil, floor]

Differential Revision: http://reviews.llvm.org/D20070

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

8 years ago[Sema] Fix an overload resolution bug with enable_if.
George Burgess IV [Tue, 10 May 2016 01:59:34 +0000 (01:59 +0000)]
[Sema] Fix an overload resolution bug with enable_if.

Currently, if clang::isBetterOverloadCandidate encounters an enable_if
attribute on either candidate that it's inspecting, it will ignore all
lower priority attributes (e.g. pass_object_size). This is problematic
in cases like:

```
void foo(char *c) __attribute__((enable_if(1, "")));
void foo(char *c __attribute__((pass_object_size(0))))
    __attribute__((enable_if(1, "")));
```

...Because we would ignore the pass_object_size attribute in the second
`foo`, and consider any call to `foo` to be ambiguous.

This patch makes overload resolution consult further tiebreakers (e.g.
pass_object_size) if two candidates have equally good enable_if
attributes.

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

8 years ago[CUDA] Fix flush-denormals.cu test so that it checks what it intends to CHECK.
Justin Lebar [Tue, 10 May 2016 00:34:50 +0000 (00:34 +0000)]
[CUDA] Fix flush-denormals.cu test so that it checks what it intends to CHECK.

FileCheck does not evaluate plain CHECKs if you pass -check-prefix; you
have to ask for it explicitly.

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

8 years agoWhen forming a fully-qualified type name, put any qualifiers outside/before the
Richard Smith [Mon, 9 May 2016 23:06:14 +0000 (23:06 +0000)]
When forming a fully-qualified type name, put any qualifiers outside/before the
nested-name-specifier. Patch by Sterling Augustine!

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

8 years ago[CUDA] Restrict init of local __shared__ variables to empty constructors only.
Artem Belevich [Mon, 9 May 2016 22:09:56 +0000 (22:09 +0000)]
[CUDA] Restrict init of local __shared__ variables to empty constructors only.

Allow only empty constructors for local __shared__ variables in a way
identical to restrictions imposed on dynamic initializers for global
variables on device.

Differential Revision: http://reviews.llvm.org/D20039

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

8 years ago[CUDA] Only __shared__ variables can be static local on device side.
Artem Belevich [Mon, 9 May 2016 19:36:08 +0000 (19:36 +0000)]
[CUDA] Only __shared__ variables can be static local on device side.

According to CUDA programming guide (v7.5):
> E.2.9.4: Within the body of a device or global function, only
> shared variables may be declared with static storage class.

Differential Revision: http://reviews.llvm.org/D20034

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

8 years ago[Myriad] Use Generic_ELF::addClangTargetOptions()
Douglas Katzman [Mon, 9 May 2016 19:09:59 +0000 (19:09 +0000)]
[Myriad] Use Generic_ELF::addClangTargetOptions()

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

8 years ago[Power9] Enable -mcpu=pwr9 (-mcpu=power9) in the front end
Nemanja Ivanovic [Mon, 9 May 2016 18:58:02 +0000 (18:58 +0000)]
[Power9] Enable -mcpu=pwr9 (-mcpu=power9) in the front end

This patch corresponds to review:
http://reviews.llvm.org/D19684

It simply adds the handling for the option and the corresponding macros.

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

8 years ago[cmake] Enable zlib support for Apple stage2 builds
Vedant Kumar [Mon, 9 May 2016 18:40:09 +0000 (18:40 +0000)]
[cmake] Enable zlib support for Apple stage2 builds

This allows llvm-profdata to interact with profiles containing
compressed name data.

rdar://problem/26122944

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

8 years ago[OpenMP] Parse+Sema for '#pragma omp declare target' syntax version 4.5
Dmitry Polukhin [Mon, 9 May 2016 14:59:13 +0000 (14:59 +0000)]
[OpenMP] Parse+Sema for '#pragma omp declare target' syntax version 4.5

Support OpenMP version 4.5 syntax for #pragma omp declare target.

Syntax:
  #pragma omp declare target (extended-list) new-line
or
  #pragma omp declare target clause[ [,] clause ... ] new-line

Where clause is one of the following:
  to(extended-list)
  link(list)

Differential Revision: http://reviews.llvm.org/D20011

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

8 years agoProper detection and handling of RHEL and variants.
Rafael Espindola [Mon, 9 May 2016 13:13:50 +0000 (13:13 +0000)]
Proper detection and handling of RHEL and variants.

- Don't consider "/etc/lsb-release" to be Ubuntu only.
- Detect SL, too.
- Only add "--no-add-needed" for RHEL7 (or Fedora), not for RHEL6
  (that's what the compilers shipped with RHEL do).
- removed RHEL4 which is now four years past EOL and certainly incapable
  of building or running any recent version of llvm/clang.

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

8 years agoRHEL: Look in more places to find g++ headers and runtime.
Rafael Espindola [Mon, 9 May 2016 13:03:10 +0000 (13:03 +0000)]
RHEL: Look in more places to find g++ headers and runtime.

Some distros with ten years of support ship an old gcc but later offer
more recent versions for installation in parallel. These versions are
typically not only needed for the compilation of llvm/clang, but also to
properly use the clang binary that comes out.

Clang already searches /usr at runtime for the most recent installation
of gcc. This patch appends paths for add-on installations of gcc in
RHEL.

Patch by Michael Lampe.

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

8 years ago[clang][AVX512] completing missing intrinsics [vmin/vmax].
Michael Zuckerman [Mon, 9 May 2016 12:38:49 +0000 (12:38 +0000)]
[clang][AVX512] completing missing intrinsics [vmin/vmax].

Differential Revision: http://reviews.llvm.org/D20062

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

8 years ago[Clang][AVX512] completing missing intrinsics [CVT]
Michael Zuckerman [Mon, 9 May 2016 10:32:51 +0000 (10:32 +0000)]
[Clang][AVX512] completing missing intrinsics [CVT]

Differential Revision: http://reviews.llvm.org/D20056

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

8 years agoEnable support for __float128 in Clang and enable it on pertinent platforms
Nemanja Ivanovic [Mon, 9 May 2016 08:52:33 +0000 (08:52 +0000)]
Enable support for __float128 in Clang and enable it on pertinent platforms

This patch corresponds to reviews:
http://reviews.llvm.org/D15120
http://reviews.llvm.org/D19125

It adds support for the __float128 keyword, literals and target feature to
enable it. Based on the latter of the two aforementioned reviews, this feature
is enabled on Linux on i386/X86 as well as SystemZ.
This is also the second attempt in commiting this feature. The first attempt
did not enable it on required platforms which caused failures when compiling
type_traits with -std=gnu++11.

If you see failures with compiling this header on your platform after this
commit, it is likely that your platform needs to have this feature enabled.

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

8 years agoFix spurious warnings about unused private field
Olivier Goffart [Mon, 9 May 2016 07:09:51 +0000 (07:09 +0000)]
Fix spurious warnings about unused private field

If the address of a field is taken as a pointer to member, we should
not warn that the field is not used.

Normaly, yse of fields are done from MemberExpr, but in case of pointer to
member, it is in a DeclRefExpr

Differential Revision: http://reviews.llvm.org/D20054

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

8 years ago[X86] Fix up type arguments of __builtin_ia32_cvtss2sd_round_mask and __builtin_ia32_...
Craig Topper [Mon, 9 May 2016 05:34:22 +0000 (05:34 +0000)]
[X86] Fix up type arguments of __builtin_ia32_cvtss2sd_round_mask and __builtin_ia32_cvtsd2ss_round_mask to match the backend.

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

8 years agoclang-format: Fix space after argument comments.
Daniel Jasper [Sun, 8 May 2016 18:14:01 +0000 (18:14 +0000)]
clang-format: Fix space after argument comments.

Before:
  f(/*a=*/a, /*b=*/ ::b);

After:
  f(/*a=*/a, /*b=*/::b);

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

8 years agoclang-format: Support enum type template arguments.
Daniel Jasper [Sun, 8 May 2016 18:12:22 +0000 (18:12 +0000)]
clang-format: Support enum type template arguments.

Before:
  template <enum E> class A { public : E *f(); };

After:
  template <enum E> class A {
  public:
    E *f();
  };

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

8 years agoTeach header search about GCC 4.9 header search paths in Gentoo, they
Chandler Carruth [Sun, 8 May 2016 07:59:56 +0000 (07:59 +0000)]
Teach header search about GCC 4.9 header search paths in Gentoo, they
now use the full GCC version in their weird suffix.

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

8 years ago[OpenMP] Check for associated statements with hasAssociatedStmt() when scanning for...
Samuel Antao [Sun, 8 May 2016 06:43:56 +0000 (06:43 +0000)]
[OpenMP] Check for associated statements with hasAssociatedStmt() when scanning for device code.

Summary: `getAssociatedStmt()` contains an assertion that assumes the statement always exists. In device code scanning, we need to look into the associated statement therefore we check its existence. This patch replaces  `getAssociatedStmt` by `hasAssociatedStmt` so that we do not trigger the assertion for directives that happen not to have an associated statement (e.g target enter/exit data).

Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev

Subscribers: cfe-commits, caomhin

Differential Revision: http://reviews.llvm.org/D19812

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

8 years agoUpdate \param corresponding to r268819. [-Wdocumentation]
NAKAMURA Takumi [Sat, 7 May 2016 03:12:30 +0000 (03:12 +0000)]
Update \param corresponding to r268819. [-Wdocumentation]

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

8 years ago[CrashReproducer] Always use realpath for destination
Bruno Cardoso Lopes [Fri, 6 May 2016 23:58:58 +0000 (23:58 +0000)]
[CrashReproducer] Always use realpath for destination

When running reproducer scripts we need that original symlinks from the
source filesystem are reproduced in the VFS so that different virtual
paths can map to the same file, allowing the FileManager to share the
same UID between these virtual entries. This avoids all sorts of module
redefinition errors when using frameworks.

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

8 years ago[VFS] Add dump methods to the VFS overlay tree
Bruno Cardoso Lopes [Fri, 6 May 2016 23:21:57 +0000 (23:21 +0000)]
[VFS] Add dump methods to the VFS overlay tree

Useful when debugging issues within the VFS overlay.

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

8 years ago[CrashReproducer] Change module map callback signature. NFC
Bruno Cardoso Lopes [Fri, 6 May 2016 23:21:50 +0000 (23:21 +0000)]
[CrashReproducer] Change module map callback signature. NFC

Use a StringRef instead of a FileEntry in the moduleMapAddHeader
callback to allow more flexibility on what to collect on further
patches. This changes the interface I introduced in r264971.

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

8 years ago[modules] Attempt to improve performance for declaration merging without a Sema
Richard Smith [Fri, 6 May 2016 23:14:07 +0000 (23:14 +0000)]
[modules] Attempt to improve performance for declaration merging without a Sema
object in C. Rather than using the DeclContext (which is very slow because it
triggers us to build a lookup table for the DeclContext), use a separate map
from identifiers to decls for this case, containing only the ones we've
actually deserialized. For convenience, this map is implemented as an
IdentifierResolver.

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

8 years agoFix sysroot-prefix.c on Windows (/ vs \).
Nico Weber [Fri, 6 May 2016 21:17:32 +0000 (21:17 +0000)]
Fix sysroot-prefix.c on Windows (/ vs \).

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

8 years agoAvailability: set location when creating attribute for tvos, watchos.
Manman Ren [Fri, 6 May 2016 21:04:01 +0000 (21:04 +0000)]
Availability: set location when creating attribute for tvos, watchos.

When inferring availability attributes for tvos, watchos from ios, we
use the same source location and set the implicit bit to true.

So when emitting diagnostics on inferred attributes, we have a source
location.

rdar://25893544

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

8 years agoAvailability: attach the note to the declaration with the attributes.
Manman Ren [Fri, 6 May 2016 19:57:16 +0000 (19:57 +0000)]
Availability: attach the note to the declaration with the attributes.

Sometimes, the declaration we found has inherited availability
attributes, attaching the note to it does not tell us where the
availability attributes are in the source.

Go through the redecl chain to find the declaration with actual
availability attributes.

rdar://25221771

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

8 years agotest: attempt to repair windows build
Saleem Abdulrasool [Fri, 6 May 2016 19:39:00 +0000 (19:39 +0000)]
test: attempt to repair windows build

Replace use of /dev/null with /var/empty.  lit will substitute the /dev/null
include path resulting in failures.  Use a path under /var/empty which is
supposed to be empty to ensure that we can successfully test.

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

8 years agoObjC kindof: set the type of a conditional expression when involving kindof.
Manman Ren [Fri, 6 May 2016 19:35:02 +0000 (19:35 +0000)]
ObjC kindof: set the type of a conditional expression when involving kindof.

When either LHS or RHS is a kindof type, we return a kindof type.

rdar://problem/20513780

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

8 years agoFrontend: support -I=path for sysroot expansion
Saleem Abdulrasool [Fri, 6 May 2016 19:13:55 +0000 (19:13 +0000)]
Frontend: support -I=path for sysroot expansion

From the GCC manpage:

  -I dir
    ... If dir begins with =, then the = will be replaced by the sysroot prefix;
    see --sysroot and -isysroot.

Add support to expand the `=` as a prefix of the include path with the sysroot
if specified.  `-isysroot` takes precedence over `--sysroot` as the normal
argument behaviour occurs.  The ordering of the `-isysroot` is relevant to the
path substituted.  If no `--sysroot=` or `-isysroot` option is present, the = is
not expanded.

Resolves PR26965!

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

8 years ago[analyzer] Add tests for Objective-C class properties
Devin Coughlin [Fri, 6 May 2016 18:24:50 +0000 (18:24 +0000)]
[analyzer] Add tests for Objective-C class properties

Add basic tests to ensure the analyzer has support for class properties. This
is a test-only change.

rdar://problem/25256807

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

8 years ago[www][analyzer] Update recommended suppression mechanism for localization.
Devin Coughlin [Fri, 6 May 2016 18:13:30 +0000 (18:13 +0000)]
[www][analyzer] Update recommended suppression mechanism for localization.

Based on feedback from Jordan Rose, make the recommended suppression function be 'static
inline'.

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

8 years ago[www][analyzer] Add FAQ about suppression of missing localization diagnostic.
Devin Coughlin [Fri, 6 May 2016 17:51:34 +0000 (17:51 +0000)]
[www][analyzer] Add FAQ about suppression of missing localization diagnostic.

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

8 years agoMore fixes to codeblock formatting in documentation.
Richard Smith [Fri, 6 May 2016 16:48:29 +0000 (16:48 +0000)]
More fixes to codeblock formatting in documentation.

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

8 years agoRevert "AMDGPU/SI: Use amdgpu_kernel calling convention for OpenCL kernels."
Nikolay Haustov [Fri, 6 May 2016 15:00:51 +0000 (15:00 +0000)]
Revert "AMDGPU/SI: Use amdgpu_kernel calling convention for OpenCL kernels."

This reverts commit f7053ec90d0fc56f0837e43c2c759e85b56c21a1.

It broke calling OpenCL kernel from another kernel.

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

8 years agoRevert r268727, it caused PR27666.
Nico Weber [Fri, 6 May 2016 14:34:29 +0000 (14:34 +0000)]
Revert r268727, it caused PR27666.

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

8 years agoAdding omitted column to invalid loc diagnostic.
Ben Craig [Fri, 6 May 2016 13:29:46 +0000 (13:29 +0000)]
Adding omitted column to invalid loc diagnostic.

note_fe_backend_invalid_loc expects three arguments (file, line, column),
and will assert when only given two. The other two places in this file that
use note_fe_backend_invalid_loc already supply the Column for the third
parameter.

http://reviews.llvm.org/D19936

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

8 years ago[OPENMP 4.5] Tests for 'private|firstprivates' clauses in 'taskloop' directive.
Alexey Bataev [Fri, 6 May 2016 12:04:14 +0000 (12:04 +0000)]
[OPENMP 4.5] Tests for 'private|firstprivates' clauses in 'taskloop' directive.

Added tests for codegen for private|firstprivate clauses in taskloop-based directives.

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

8 years agos/codeblock/code-block to fix the Sphinx build.
Aaron Ballman [Fri, 6 May 2016 11:56:57 +0000 (11:56 +0000)]
s/codeblock/code-block to fix the Sphinx build.

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

8 years ago[MSVC] Implementation of __unaligned as a proper type qualifier
Andrey Bokhanko [Fri, 6 May 2016 11:47:55 +0000 (11:47 +0000)]
[MSVC] Implementation of __unaligned as a proper type qualifier

This patch implements __unaligned (MS extension) as a proper type qualifier
(before that, it was implemented as an ignored attribute).

It also fixes PR27367.

Differential Revision: http://reviews.llvm.org/D19654

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

8 years ago[OPENMP 4.0] Codegen for 'declare simd' directive.
Alexey Bataev [Fri, 6 May 2016 09:40:08 +0000 (09:40 +0000)]
[OPENMP 4.0] Codegen for 'declare simd' directive.

OpenMP 4.0 adds support for elemental functions using declarative
directive '#pragma omp declare simd'. Patch adds mangling for simd
functions in accordance with
https://sourceware.org/glibc/wiki/libmvec?action=AttachFile&do=view&target=VectorABI.txt

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

8 years agoAMDGPU/SI: Use amdgpu_kernel calling convention for OpenCL kernels.
Nikolay Haustov [Fri, 6 May 2016 09:15:24 +0000 (09:15 +0000)]
AMDGPU/SI: Use amdgpu_kernel calling convention for OpenCL kernels.

Reviewers: tstellarAMD, arsenm

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D19918

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

8 years ago[CMake] Removing LLVM_ENABLE_TIMESTAMPS from the cache files
Chris Bieneman [Thu, 5 May 2016 21:08:41 +0000 (21:08 +0000)]
[CMake] Removing LLVM_ENABLE_TIMESTAMPS from the cache files

Since the option was removed in r268670, the cache scripts should stop referring to it.

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

8 years agoFix some Clang-tidy readability-simplify-boolean-expr and Include What You Use warnings.
Eugene Zelenko [Thu, 5 May 2016 20:15:31 +0000 (20:15 +0000)]
Fix some Clang-tidy readability-simplify-boolean-expr and Include What You Use warnings.

Differential revision: http://reviews.llvm.org/D19947

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

8 years agoAdd forgotten test from r268594.
Richard Smith [Thu, 5 May 2016 19:16:58 +0000 (19:16 +0000)]
Add forgotten test from r268594.

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

8 years agoAdd a FixItHint for the new diagnostic for a non-class-scope using-declaration that...
Richard Smith [Thu, 5 May 2016 19:16:15 +0000 (19:16 +0000)]
Add a FixItHint for the new diagnostic for a non-class-scope using-declaration that names a class-scope enumerator.

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

8 years agoSome release note updates for C++ language acceptance changes since Clang 3.8.
Richard Smith [Thu, 5 May 2016 18:40:37 +0000 (18:40 +0000)]
Some release note updates for C++ language acceptance changes since Clang 3.8.

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

8 years agoAMDGPU: Use lld as the linker again
Tom Stellard [Thu, 5 May 2016 17:03:41 +0000 (17:03 +0000)]
AMDGPU: Use lld as the linker again

Summary:
Now that LLVM is emitting version 2 of the AMD code object, we can
start using lld again for linking instead of our custom tool.

Reviewers: arsenm, kzhuravl

Subscribers: rafael, cfe-commits

Differential Revision: http://reviews.llvm.org/D19952

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

8 years ago[CMake][Apple-stage2] Don't link with -fno-pie
Chris Bieneman [Thu, 5 May 2016 16:31:28 +0000 (16:31 +0000)]
[CMake][Apple-stage2] Don't link with -fno-pie

On Darwin the default is to build PIC and link PIE. We shouldn't need to override that in the Apple Clang distributions.

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

8 years ago[Hexagon] Add a testcase for __builtin_HEXAGON_A2_tfrpi
Krzysztof Parzyszek [Thu, 5 May 2016 15:55:54 +0000 (15:55 +0000)]
[Hexagon] Add a testcase for __builtin_HEXAGON_A2_tfrpi

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

8 years agoAdd a test for PR26076.
Nico Weber [Thu, 5 May 2016 11:51:22 +0000 (11:51 +0000)]
Add a test for PR26076.

r262056 accidentally fixed this.  Add a test to ensure it
doesn't regress.

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

8 years agoSema.h: Prune a redundant \return. [-Wdocumentation]
NAKAMURA Takumi [Thu, 5 May 2016 10:29:11 +0000 (10:29 +0000)]
Sema.h: Prune a redundant \return. [-Wdocumentation]

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

8 years ago[OPENMP 4.5] Codegen for 'lastprivate' clauses in 'taskloop' directives.
Alexey Bataev [Thu, 5 May 2016 08:46:22 +0000 (08:46 +0000)]
[OPENMP 4.5] Codegen for 'lastprivate' clauses in 'taskloop' directives.

OpenMP 4.5 adds taskloop/taskloop simd directives. These directives
allow to use lastprivate clause. Patch adds codegen for this clause.

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

8 years agoDocumentation updates for recent changes to VLAs and default-initialization of const...
Richard Smith [Thu, 5 May 2016 02:53:55 +0000 (02:53 +0000)]
Documentation updates for recent changes to VLAs and default-initialization of const-qualified class objects.

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

8 years agoUpdate FIXME.
Richard Smith [Thu, 5 May 2016 02:14:06 +0000 (02:14 +0000)]
Update FIXME.

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

8 years agoFix implementation of C++'s restrictions on using-declarations referring to enumerators:
Richard Smith [Thu, 5 May 2016 02:13:49 +0000 (02:13 +0000)]
Fix implementation of C++'s restrictions on using-declarations referring to enumerators:

 * an unscoped enumerator whose enumeration is a class member is itself a class
   member, so can only be the subject of a class-scope using-declaration.

 * a scoped enumerator cannot be the subject of a class-scope using-declaration.

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

8 years agoDo not add uwtable attribute by default for MachO targets.
Akira Hatanaka [Thu, 5 May 2016 01:41:07 +0000 (01:41 +0000)]
Do not add uwtable attribute by default for MachO targets.

r217178 changed clang to add function attribute uwtable by default on
Win64, which caused the __eh_frame section to be emitted by default.
This commit restores the previous behavior for MachO targets.

rdar://problem/25282627

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

8 years ago[modules] Enforce the rules that an explicit or partial specialization must be
Richard Smith [Thu, 5 May 2016 00:56:12 +0000 (00:56 +0000)]
[modules] Enforce the rules that an explicit or partial specialization must be
declared before it is used. Because we don't use normal name lookup to find
these, the normal code to filter out non-visible names from name lookup results
does not apply.

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

8 years ago[SystemZ] Add -mbackchain option.
Marcin Koscielnicki [Wed, 4 May 2016 23:37:40 +0000 (23:37 +0000)]
[SystemZ] Add -mbackchain option.

This option, like the corresponding gcc option, is SystemZ-specific and
enables storing frame backchain links, as specified in the ABI.

Differential Revision: http://reviews.llvm.org/D19891

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

8 years agoAdd the Pure attribute to C99 builtin functions from ctype.h. This is a corrected...
Aaron Ballman [Wed, 4 May 2016 21:08:13 +0000 (21:08 +0000)]
Add the Pure attribute to C99 builtin functions from ctype.h. This is a corrected version of r266199 with test case fixes.

Patch by Taewook Oh.

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

8 years agoFix the doc extraction script to work with hasAnyName and with equalsNode.
Samuel Benzaquen [Wed, 4 May 2016 20:45:00 +0000 (20:45 +0000)]
Fix the doc extraction script to work with hasAnyName and with equalsNode.

The change from llvm::VariadicFunction to internal::VariadicFunction
broke the extraction of hasAnyName().
equalsNode was broken because the argument type is 'const XXXX*' and
the internal space caused a failure on the regex.

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

8 years agofix docs
Kostya Serebryany [Wed, 4 May 2016 20:24:54 +0000 (20:24 +0000)]
fix docs

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

8 years agodocument -f[no-]sanitize-recover=all and mention it in warning messages
Kostya Serebryany [Wed, 4 May 2016 20:21:47 +0000 (20:21 +0000)]
document -f[no-]sanitize-recover=all and mention it in warning messages

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

8 years ago[CodeGenObjCXX] Fix handling of blocks in lambda.
Akira Hatanaka [Wed, 4 May 2016 18:40:33 +0000 (18:40 +0000)]
[CodeGenObjCXX] Fix handling of blocks in lambda.

This fixes a crash that occurs when a block captures a reference that is
captured by its enclosing lambda.

rdar://problem/18586651

Differential Revision: http://reviews.llvm.org/D19536

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

8 years ago[ObjC] Enter a new evaluation context before calling
Akira Hatanaka [Wed, 4 May 2016 18:07:20 +0000 (18:07 +0000)]
[ObjC] Enter a new evaluation context before calling
BuildBlockForLambdaConversion.

Previously, clang would build an incorrect AST for the following code:

id test() {
  return @{@"a": [](){}, @"b": [](){}};
}

ReturnStmt 0x10d080448
`-ExprWithCleanups 0x10d080428
  |-cleanup Block 0x10d0801f0 // points to the second BlockDecl
    ...
    -BlockDecl 0x10d07f150 // First block
    ...
    -BlockDecl 0x10d0801f0 // Second block
    ...
     `-ExprWithCleanups 0x10d0801d0
       |-cleanup Block 0x10d07f150 // points to the first BlockDecl

To fix the bug, this commit enters a new evaluation context to reset
ExprNeedsCleanups before each block is parsed.

rdar://problem/16879958

Differential Revision: http://reviews.llvm.org/D18815

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

8 years agoUpdate test CHECK lines after r268509. NFC.
Pete Cooper [Wed, 4 May 2016 17:37:27 +0000 (17:37 +0000)]
Update test CHECK lines after r268509.  NFC.

r268509 causes this test case to be fully unrolled, so checking for an icmp is
no longer valid.  Given that this test is for ARC anyway, checking for the icmp seems
unecessary.

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

8 years ago[Coverage] Fix an issue where a coverage region might not be created for a macro...
Igor Kudrin [Wed, 4 May 2016 15:38:26 +0000 (15:38 +0000)]
[Coverage] Fix an issue where a coverage region might not be created for a macro containing a loop statement.

The issue happened when a macro contained a full for or
while statement, which body ended at the end of the macro.

Differential Revision: http://reviews.llvm.org/D19725

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

8 years agoDo not disable completely loop unroll when optimizing for size.
Marianne Mailhot-Sarrasin [Wed, 4 May 2016 15:26:28 +0000 (15:26 +0000)]
Do not disable completely loop unroll when optimizing for size.

Let the loop unroll pass handle /Os. It already checks that option and adjust its thresholds accordingly. Also, will allow the #pragma unroll to have an effect in /Os.

Differential Revision: http://reviews.llvm.org/D19827

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