]> granicus.if.org Git - clang/log
clang
8 years agoclang-format: Increase the penalty for breaking between array subscripts.
Daniel Jasper [Tue, 1 Mar 2016 04:19:55 +0000 (04:19 +0000)]
clang-format: Increase the penalty for breaking between array subscripts.

Before:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[aaaaaaaaaaaaaaaaaaaaaaa]
                                    [a].aaaaaaaaaaaaaaaaaaaaaa();

After:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[aaaaaaaaaaaaaaaaaaaaaaa][a]
      .aaaaaaaaaaaaaaaaaaaaaa();

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

8 years agoclang-format: [JS] Support quoted object literal keys.
Daniel Jasper [Tue, 1 Mar 2016 04:19:47 +0000 (04:19 +0000)]
clang-format: [JS] Support quoted object literal keys.

Before:
  var x = {
    a: a,
    b: b, 'c': c,
  };

After:
  var x = {
    a: a,
    b: b,
    'c': c,
  };

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

8 years ago[index] Fix issue where data visitation was disabled with C++ operator call expressio...
Argyrios Kyrtzidis [Tue, 1 Mar 2016 02:46:32 +0000 (02:46 +0000)]
[index] Fix issue where data visitation was disabled with C++ operator call expressions, during indexing.

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

8 years agoFix the template instantiation of ExtParameterInfos; tests to follow.
John McCall [Tue, 1 Mar 2016 02:09:25 +0000 (02:09 +0000)]
Fix the template instantiation of ExtParameterInfos; tests to follow.

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

8 years agoAdd an llvm_unreachable back to the autogeneration of this covered switch.
John McCall [Tue, 1 Mar 2016 02:09:20 +0000 (02:09 +0000)]
Add an llvm_unreachable back to the autogeneration of this covered switch.

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

8 years agoFix the testcase in r262282
Steven Wu [Tue, 1 Mar 2016 01:24:54 +0000 (01:24 +0000)]
Fix the testcase in r262282

-bitcode_bundle is only passed to the darwin ld64 linker and it is only
implemented there. Remove the check on the linker flag.

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

8 years agoMake test more robust.
Sean Silva [Tue, 1 Mar 2016 01:20:15 +0000 (01:20 +0000)]
Make test more robust.

Really all these tests are checking is that we find a file path. The
behavior when we don't find one will have `"ps4-ld"` in it. We just need
a path separator to know that a path has been found.

The root cause of the flakiness of these tests is the same on Windows
and non-Windows: setting the PATH environment variable is not sufficient
to guarantee that a particular path is looked up first.
Driver::GetProgramPath checks some paths before deferring to PATH
(in particular, the directory containing the clang binary itself).

I initally ran into this on Windows when putting a PS4 linker in
build-dir/bin/ps4-ld for testing.
After digging for a while thinking that it was some windows path search
oddity (the Windows SearchPathW documentation indicates that its
behavior varies depending on a registry setting...).
I eventually tried reproducing the issue on Mac and to my surprise found
the same issue.
Ultimately I traced it down to the extra lookups in
Driver::GetProgramPath.

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

8 years agoIntroduce -fembed-bitcode driver option
Steven Wu [Tue, 1 Mar 2016 01:07:58 +0000 (01:07 +0000)]
Introduce -fembed-bitcode driver option

Summary:
This is the clang driver part of the change to embedded bitcode. This
includes:
1. -fembed-bitcode option which breaks down the compilation into two
stages. The first stage emits optimized bitcode and the second stage
compiles bitcode into object file.
2. -fembed-bitcode-marker option which doesn't really break down to
two stages to speedup the compilation flow.
3. pass the correct linker flag to darwin linker if tool chains supports
embedded bitcode.

Reviewers: rsmith, thakis

Subscribers: thakis, cfe-commits

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

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

8 years agoGeneralize the consumed-parameter array on FunctionProtoType
John McCall [Tue, 1 Mar 2016 00:49:02 +0000 (00:49 +0000)]
Generalize the consumed-parameter array on FunctionProtoType
to allow arbitrary data to be associated with a parameter.

Also, fix a bug where we apparently haven't been serializing
this information for the last N years.

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

8 years ago[analyzer] Update CheckObjCDealloc diagnostic for missing -dealloc.
Devin Coughlin [Tue, 1 Mar 2016 00:39:04 +0000 (00:39 +0000)]
[analyzer] Update CheckObjCDealloc diagnostic for missing -dealloc.

Update the diagnostic for classes missing -dealloc to mention an instance
variable that needs to be released.

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

8 years agoInfrastructure improvements to Clang attribute TableGen.
John McCall [Tue, 1 Mar 2016 00:18:05 +0000 (00:18 +0000)]
Infrastructure improvements to Clang attribute TableGen.

This should make it easier to add new Attr subclasses.

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

8 years ago[analyzer] Teach CheckObjCDealloc about Block_release().
Devin Coughlin [Mon, 29 Feb 2016 23:57:10 +0000 (23:57 +0000)]
[analyzer] Teach CheckObjCDealloc about Block_release().

It now treats Block_release(b) as a release in addition to [b release].

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

8 years ago[analyzer] Don't treat calls to system headers as escaping in CheckObjCDealloc.
Devin Coughlin [Mon, 29 Feb 2016 21:44:08 +0000 (21:44 +0000)]
[analyzer] Don't treat calls to system headers as escaping in CheckObjCDealloc.

This prevents false negatives when a -dealloc method, for example, removes itself as
as an observer with [[NSNotificationCenter defaultCenter] removeObserver:self]. It is
unlikely that passing 'self' to a system header method will release 'self''s instance
variables, so this is unlikely to produce false positives.

A challenge here is that while CheckObjCDealloc no longer treats these calls as
escaping, the rest of the analyzer still does. In particular, this means that loads
from the same instance variable before and after a call to a system header will
result in different symbols being loaded by the region store. To account for this,
the checker now treats different ivar symbols with the same instance and ivar decl as
the same for the purpose of release checking and more eagerly removes a release
requirement when an instance variable is assumed to be nil. This was not needed before
because when an ivar escaped its release requirement was always removed -- now the
requirement is not removed for calls to system headers.

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

8 years ago[PGO] clang cc1 option change to enable IR level instrumentation
Rong Xu [Mon, 29 Feb 2016 18:54:59 +0000 (18:54 +0000)]
[PGO] clang cc1 option change to enable IR level instrumentation

This patch expands cc1 option -fprofile-instrument= with a new value: -fprofile-instrument=llvm
which enables IR level PGO instrumentation.

Reviewers: davidxl, silvas

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

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

8 years agoRevert "Implement new interfaces for code-formatting when applying replacements."
Manuel Klimek [Mon, 29 Feb 2016 16:44:16 +0000 (16:44 +0000)]
Revert "Implement new interfaces for code-formatting when applying replacements."

This reverts commit r262232.

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

8 years agoImplement new interfaces for code-formatting when applying replacements.
Manuel Klimek [Mon, 29 Feb 2016 16:27:41 +0000 (16:27 +0000)]
Implement new interfaces for code-formatting when applying replacements.

Patch by Eric Liu.

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

8 years agoAMDGPU: Add missing Volcanic Islands targets
Tom Stellard [Mon, 29 Feb 2016 15:08:56 +0000 (15:08 +0000)]
AMDGPU: Add missing Volcanic Islands targets

Reviewers: arsenm

Subscribers: cfe-commits

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

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

8 years agoclang-format: Don't format unrelated nested blocks.
Daniel Jasper [Mon, 29 Feb 2016 12:26:20 +0000 (12:26 +0000)]
clang-format: Don't format unrelated nested blocks.

With this change:

  SomeFunction(
      [] {
int i;
 return i;  // Format this line.
      },
      [] {
 return 2;  // Don't "fix" this.
      });

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

8 years ago[index] Print and test module import references.
Argyrios Kyrtzidis [Mon, 29 Feb 2016 07:56:07 +0000 (07:56 +0000)]
[index] Print and test module import references.

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

8 years ago[index] Add a caller relation for a call reference.
Argyrios Kyrtzidis [Mon, 29 Feb 2016 07:56:00 +0000 (07:56 +0000)]
[index] Add a caller relation for a call reference.

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

8 years ago[AST/RecursiveASTVisitor] Correction so that dataTraverseStmtPost will get called...
Argyrios Kyrtzidis [Mon, 29 Feb 2016 07:55:55 +0000 (07:55 +0000)]
[AST/RecursiveASTVisitor] Correction so that dataTraverseStmtPost will get called after the statement has been visited.

Fixes the indexing client of this.

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

8 years ago[index] Use ',' to separate symbol roles when printing.
Argyrios Kyrtzidis [Mon, 29 Feb 2016 07:55:51 +0000 (07:55 +0000)]
[index] Use ',' to separate symbol roles when printing.

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

8 years ago[X86] Disabling avx512f should also disable avx512vbmi and avx512ifma. Enabling avx51...
Craig Topper [Mon, 29 Feb 2016 06:51:38 +0000 (06:51 +0000)]
[X86] Disabling avx512f should also disable avx512vbmi and avx512ifma. Enabling avx512vbmi or avx512ifma should enable avx512f. Add command line switches and header defines for avx512ifma and avx512vbmi.

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

8 years ago[X86] Enabling xsave should not enable AVX. I seem to have done this, but I don't...
Craig Topper [Mon, 29 Feb 2016 06:51:34 +0000 (06:51 +0000)]
[X86] Enabling xsave should not enable AVX. I seem to have done this, but I don't know why.

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

8 years ago[OPENMP 4.5] Initial support for data members in 'reduction' clauses.
Alexey Bataev [Mon, 29 Feb 2016 05:54:20 +0000 (05:54 +0000)]
[OPENMP 4.5] Initial support for data members in 'reduction' clauses.

OpenMP 4.5 allows to privatize non-static data members of current class
in non-static member functions. Patch adds initial parsing/semantic
analysis for data members support in 'reduction' clauses.

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

8 years ago[clang-cl] /EHc should not effect functions with explicit exception specifications
David Majnemer [Mon, 29 Feb 2016 01:40:36 +0000 (01:40 +0000)]
[clang-cl] /EHc should not effect functions with explicit exception specifications

Functions with an explicit exception specification have their behavior
dictated by the specification.  The additional /EHc behavior only comes
into play if no exception specification is given.

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

8 years ago[clang-cl] /EHc should not have an effect on /EHa
David Majnemer [Mon, 29 Feb 2016 01:40:30 +0000 (01:40 +0000)]
[clang-cl] /EHc should not have an effect on /EHa

This matches behavior with MSVC.

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

8 years ago[modules] Prefer more complete array types.
Vassil Vassilev [Sun, 28 Feb 2016 19:08:24 +0000 (19:08 +0000)]
[modules] Prefer more complete array types.

If we import a module that has a complete array type and one that has an
incomplete array type, the declaration found by name lookup might be the one with
the incomplete type, possibly resulting in rejects-valid.

Now, the name lookup prefers decls with a complete array types. Also,
diagnose cases when the redecl chain has array bound, different from the merge
candidate.

Reviewed by Richard Smith.

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

8 years agoAdd ARM EHABI-related constants to unwind.h.
Logan Chien [Sun, 28 Feb 2016 15:01:42 +0000 (15:01 +0000)]
Add ARM EHABI-related constants to unwind.h.

Adds a number of constants, defined in the ARM EHABI spec, to the Clang
lib/Headers/unwind.h header. This is prerequisite for landing
http://reviews.llvm.org/D15781, as previously discussed there.

Patch by Timon Van Overveldt.

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

8 years ago[CLANG] [AVX512] [BUILTIN] Adding PSLL{V|W|Wi}{128|256|512} builtin
Michael Zuckerman [Sun, 28 Feb 2016 07:39:34 +0000 (07:39 +0000)]
[CLANG] [AVX512] [BUILTIN] Adding PSLL{V|W|Wi}{128|256|512} builtin

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

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

8 years agoWorkaround doxygen bug https://bugzilla.gnome.org/show_bug.cgi?id=506243
Alexander Kornienko [Sat, 27 Feb 2016 14:02:08 +0000 (14:02 +0000)]
Workaround doxygen bug https://bugzilla.gnome.org/show_bug.cgi?id=506243

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

8 years agoCorrecting indentation for an RST code block.
Aaron Ballman [Sat, 27 Feb 2016 13:13:16 +0000 (13:13 +0000)]
Correcting indentation for an RST code block.

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

8 years agoAMDGPU: Add builtins for recently added intrinsics
Matt Arsenault [Sat, 27 Feb 2016 09:54:43 +0000 (09:54 +0000)]
AMDGPU: Add builtins for recently added intrinsics

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

8 years agoAMDGPU: Fix broken/confusing predefined macro
Matt Arsenault [Sat, 27 Feb 2016 09:06:26 +0000 (09:06 +0000)]
AMDGPU: Fix broken/confusing predefined macro

amdgcn should not be defining __R600__

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

8 years agoAMDGPU: Fix inconsistent register name for flat_scratch
Matt Arsenault [Sat, 27 Feb 2016 09:06:22 +0000 (09:06 +0000)]
AMDGPU: Fix inconsistent register name for flat_scratch

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

8 years agoAdd __builtin_canonicalize
Matt Arsenault [Sat, 27 Feb 2016 09:06:18 +0000 (09:06 +0000)]
Add __builtin_canonicalize

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

8 years agoFix bug in using shadow decl checking: a using shadow decl should not conflict
Richard Smith [Sat, 27 Feb 2016 02:36:43 +0000 (02:36 +0000)]
Fix bug in using shadow decl checking: a using shadow decl should not conflict
with a prior UsingDecl -- those should not even really be found by the lookup
here, except that we use the same lookup results for two different checks, and
the other check needs them.

This happens to work in *almost all* cases, because either the lookup results
list the UsingDecl first (and the NonTag result gets replaced by something
else) or because the problematic declaration is a function (which causes us to
use different logic to detect conflicts). This can also be triggered from a
state only reachable through modules (where the name lookup results can contain
multiple UsingDecls in the same scope).

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

8 years ago[OpenMP] Fix parsing of delete map clause modifier in C++ mode.
Samuel Antao [Sat, 27 Feb 2016 00:01:58 +0000 (00:01 +0000)]
[OpenMP] Fix parsing of delete map clause modifier in C++ mode.

Summary: The map modifier 'delete' is parser in c++ mode as a delete keyword, which requires special handling in the map clause parsing.

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

Subscribers: cfe-commits, fraggamuffin, caomhin

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

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

8 years ago[CMake] Only configure Native target in stage 1, configure all in other stages
Chris Bieneman [Fri, 26 Feb 2016 21:23:59 +0000 (21:23 +0000)]
[CMake] Only configure Native target in stage 1, configure all in other stages

This patch causes the 3-stage build pipeline to only build a host compiler in the first stage, and to build all targets for subsequent stages. The host target is determined via the Native target specifier added in r262070.

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

8 years ago[CMake] Add BINUTILS_INCDIR to the default passthrough list for multi-stage builds
Chris Bieneman [Fri, 26 Feb 2016 21:04:41 +0000 (21:04 +0000)]
[CMake] Add BINUTILS_INCDIR to the default passthrough list for multi-stage builds

This is needed to build the gold plugin in multi-stage builds.

Patch by Mike Edwards

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

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

8 years ago[dllexport] Sort out emission order of delayed exported classes
Reid Kleckner [Fri, 26 Feb 2016 19:51:02 +0000 (19:51 +0000)]
[dllexport] Sort out emission order of delayed exported classes

Relands r260194 with a fix. If we have a template that transitions from
an extern template to an explicitly instantiated dllexport template, we
would add that class to the delayed exported class list without flushing
it.

For explicit instantiations, we can just flush the list of delayed
classes immediately. We don't have to worry about the bug fixed in
r260194 in this case because explicit instantiations can only occur at
file and namespace scope.

Fixes PR26490.

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

8 years agoFix Clang tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT.
Paul Robinson [Fri, 26 Feb 2016 19:34:01 +0000 (19:34 +0000)]
Fix Clang tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT.
FileCheck actually doesn't support combo suffixes.

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

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

8 years agoSemaCXX: Support templates in availability attributes
Duncan P. N. Exon Smith [Fri, 26 Feb 2016 19:27:00 +0000 (19:27 +0000)]
SemaCXX: Support templates in availability attributes

If the availability context is `FunctionTemplateDecl`, we should look
through it to the `FunctionDecl`.  This prevents a diagnostic in the
following case:

    class C __attribute__((unavailable));
    template <class T> void foo(C&) __attribute__((unavailable));

This adds tests for availability in templates in many other cases, but
that was the only case that failed before this patch.

I added a feature `__has_feature(attribute_availability_in_templates)`
so users can test for this.

rdar://problem/24561029

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

8 years agoMinor tweak to match the overall style.
Sunil Srivastava [Fri, 26 Feb 2016 18:01:12 +0000 (18:01 +0000)]
Minor tweak to match the overall style.

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

8 years agoBasic: fix __USER_LABEL_PREFIX__ on Cygwin
Saleem Abdulrasool [Fri, 26 Feb 2016 16:34:01 +0000 (16:34 +0000)]
Basic: fix __USER_LABEL_PREFIX__ on Cygwin

Adjust the user label prefix for cygwin x86_64.

Resolves PR26744.

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

8 years agoReduce false positives in printf/scanf format checker
Andy Gibbs [Fri, 26 Feb 2016 15:35:16 +0000 (15:35 +0000)]
Reduce false positives in printf/scanf format checker

Summary:
The printf/scanf format checker is a little over-zealous in handling the conditional operator.  This patch reduces work by not checking code-paths that are never used and reduces false positives regarding uncovered arguments, for example in the code fragment:

printf(minimal ? "%i\n" : "%i: %s\n", code, msg);

Reviewers: rtrieu

Subscribers: cfe-commits

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

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

8 years agoFixing an issue with the code block so that it does not appear as a list.
Aaron Ballman [Fri, 26 Feb 2016 13:39:38 +0000 (13:39 +0000)]
Fixing an issue with the code block so that it does not appear as a list.

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

8 years agoGiving this attribute documentation group a heading; fixes a documentation generation...
Aaron Ballman [Fri, 26 Feb 2016 13:30:58 +0000 (13:30 +0000)]
Giving this attribute documentation group a heading; fixes a documentation generation error.

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

8 years agoTest commit.
Vassil Vassilev [Fri, 26 Feb 2016 10:43:34 +0000 (10:43 +0000)]
Test commit.

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

8 years ago[Driver] Disable frame pointer elimination by default if target is
Akira Hatanaka [Fri, 26 Feb 2016 05:07:00 +0000 (05:07 +0000)]
[Driver] Disable frame pointer elimination by default if target is
x86_64-pc-win32-macho.

rdar://problem/24470634

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

8 years ago[MSVC Compat] Don't evaluate member base expressions w/o side effects
David Majnemer [Fri, 26 Feb 2016 04:23:19 +0000 (04:23 +0000)]
[MSVC Compat] Don't evaluate member base expressions w/o side effects

A member expression's base doesn't always have an impact on what the
member decl would evaluate to.  In such a case, the base is used as a
poor man's scope qualifier.

This fixes PR26738.

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

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

8 years ago[analyzer] Prune some incorrect \param doc comment annotations.
Devin Coughlin [Fri, 26 Feb 2016 03:41:31 +0000 (03:41 +0000)]
[analyzer] Prune some incorrect \param doc comment annotations.

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

8 years agoCheckers/CheckObjCDealloc.cpp: Prune "\param". [-Wdocumentation]
NAKAMURA Takumi [Fri, 26 Feb 2016 03:15:13 +0000 (03:15 +0000)]
Checkers/CheckObjCDealloc.cpp: Prune "\param". [-Wdocumentation]

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

8 years agoOpenMPClause.h: Fix typo in \param. [-Wdocumentation]
NAKAMURA Takumi [Fri, 26 Feb 2016 03:15:09 +0000 (03:15 +0000)]
OpenMPClause.h: Fix typo in \param. [-Wdocumentation]

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

8 years ago[OpenCL] Refine OpenCLImageAccessAttr to OpenCLAccessAttr
Xiuli Pan [Fri, 26 Feb 2016 03:13:03 +0000 (03:13 +0000)]
[OpenCL] Refine OpenCLImageAccessAttr to OpenCLAccessAttr

Summary:
OpenCL access qualifiers are now not only used for image types, refine it to avoid misleading,

Add semacheck for OpenCL access qualifier as well as test caees.

Reviewers: pekka.jaaskelainen, Anastasia, aaron.ballman

Subscribers: aaron.ballman, cfe-commits

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

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

8 years agoMake vtables_blacklist dependency conditional on existence of clang target.
Peter Collingbourne [Fri, 26 Feb 2016 03:07:33 +0000 (03:07 +0000)]
Make vtables_blacklist dependency conditional on existence of clang target.

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

8 years ago[analyzer] Shorten ObjcSuperDeallocChecker diagnostics.
Devin Coughlin [Fri, 26 Feb 2016 00:47:42 +0000 (00:47 +0000)]
[analyzer] Shorten ObjcSuperDeallocChecker diagnostics.

Change "use of 'self' after it has been freed with call to [super dealloc]" to
"use of 'self' after it has been deallocated" and "use of instance variable
'_ivar' after the instance has been freed with call to [super dealloc]" to
"use of instance variable '_ivar' after 'self' has been deallocated".

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

8 years ago[analyzer] Fix a memory error in r261935 caught by the Windows bots.
Devin Coughlin [Fri, 26 Feb 2016 00:23:41 +0000 (00:23 +0000)]
[analyzer] Fix a memory error in r261935 caught by the Windows bots.

It was using a temporary StringRef after its underlying storage was freed.

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

8 years ago[analyzer] Warn on use of 'self' after call to to [super dealloc].
Devin Coughlin [Thu, 25 Feb 2016 23:36:52 +0000 (23:36 +0000)]
[analyzer] Warn on use of 'self' after call to to [super dealloc].

Referring to 'self' after a call to [super dealloc] is a use-after-free in
Objective-C because NSObject's -dealloc frees the memory pointed to by self.
This patch extends the ObjCSuperDeallocChecker to catch this error.

rdar://problem/6953275

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

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

8 years ago[analyzer] Reapply r261917 with a fix.
Devin Coughlin [Thu, 25 Feb 2016 21:15:16 +0000 (21:15 +0000)]
[analyzer] Reapply r261917 with a fix.

This reapplies "[analyzer] Make ObjCDeallocChecker path sensitive." (r261917)
with a fix for an error on some bots about specializing a template
from another namespace.

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

8 years agoRevert "[analyzer] Make ObjCDeallocChecker path sensitive."
Devin Coughlin [Thu, 25 Feb 2016 19:13:43 +0000 (19:13 +0000)]
Revert "[analyzer] Make ObjCDeallocChecker path sensitive."

This reverts commit r261917. It broke the bots.

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

8 years ago[analyzer] Make ObjCDeallocChecker path sensitive.
Devin Coughlin [Thu, 25 Feb 2016 18:55:24 +0000 (18:55 +0000)]
[analyzer] Make ObjCDeallocChecker path sensitive.

Convert the ObjCDeallocChecker to be path sensitive. The primary
motivation for this change is to prevent false positives when -dealloc calls
helper invalidation methods to release instance variables, but it additionally
improves precision when -dealloc contains control flow. It also reduces the need
for pattern matching. The check for missing -dealloc methods remains AST-based.

Part of rdar://problem/6927496

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

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

8 years ago[CMake] Fixing install-clang-headers dependencies to depend on generating the headers.
Chris Bieneman [Thu, 25 Feb 2016 18:39:19 +0000 (18:39 +0000)]
[CMake] Fixing install-clang-headers dependencies to depend on generating the headers.

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

8 years agoAdd FieldNames to __NSConstantString_tag
Ben Langmuir [Thu, 25 Feb 2016 16:36:26 +0000 (16:36 +0000)]
Add FieldNames to __NSConstantString_tag

Since consumers of the AST may expect fields to be named.

Patch by Brad King!

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

8 years agoReplace a compiler-specific approach to determining the presence of a getDecl() membe...
Aaron Ballman [Thu, 25 Feb 2016 15:14:09 +0000 (15:14 +0000)]
Replace a compiler-specific approach to determining the presence of a getDecl() member function with one that does not require compiler-specific workarounds; NFC.

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

8 years ago[Sema] Remove assert in TreeTransform<Derived>::TransformObjCObjectType.
Akira Hatanaka [Thu, 25 Feb 2016 07:08:33 +0000 (07:08 +0000)]
[Sema] Remove assert in TreeTransform<Derived>::TransformObjCObjectType.

The assert isn't correct since TypeLoc::ObjCObjectTypeLoc doesn't
indicate whether the type is a dependent type. The function returns
false for a type like "<SomeProtocol>" which is a synonym for
"id<SomeProtocol>".

rdar://problem/23838912

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

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

8 years ago[OPENMP 4.5] Codegen for member decls in 'lastprivate' clause.
Alexey Bataev [Thu, 25 Feb 2016 05:25:57 +0000 (05:25 +0000)]
[OPENMP 4.5] Codegen for member decls in 'lastprivate' clause.

OpenMP 4.5 allows to privatize non-static member decls in non-static
member functions. Patch captures such decls by reference in general (for
bitfields, by value) and then operates with this capture. For bitfields,
at the end of codegen for lastprivates original bitfield is updated with the value of captured copy.

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

8 years agoTwek fix for PR24473 (r261506) - Preserve the template arguments as written
Faisal Vali [Thu, 25 Feb 2016 05:09:30 +0000 (05:09 +0000)]
Twek fix for PR24473 (r261506) - Preserve the template arguments as written
(within the DeclRefExpr Node) when creating AST nodes that reference specializations of static data member templates.  While we pass the template args through for all non-instance members, they should only be relevant (i.e. non-null) for variable template ids (assertion added for that assumption)

Also preserve the FoundDecl that refers to the canonical Decl (the  primary VarTemplateDecl for a variable template specialization) that we are referencing in our DeclRefExpr. Not sure why this was not being done for non-variable template-ids.

No functionality change - so no tests added.

Thanks to Richard Smith for drawing my attention to this!

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

8 years ago[OPENMP 4.5] Support fielddecls in 'shared' clause.
Alexey Bataev [Thu, 25 Feb 2016 03:59:29 +0000 (03:59 +0000)]
[OPENMP 4.5] Support fielddecls in 'shared' clause.

OpenMP 4.5 allows to use non-static data members of current class in
non-static member functions in different kind of clauses. Patch adds
support for data members in 'shared' clause.

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

8 years ago[OpenCL] Add Sema checks for types
Xiuli Pan [Thu, 25 Feb 2016 03:34:20 +0000 (03:34 +0000)]
[OpenCL] Add Sema checks for types

Summary:
Add Sema checks for opencl type: image, pipe....
This patch is partitioned from http://reviews.llvm.org/D16047

Reviewers: Anastasia, yaxunl

Subscribers: pekka.jaaskelainen, cfe-commits

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

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

8 years agoFix assertion failure on MaybeODRUseExprs.
Manman Ren [Wed, 24 Feb 2016 23:05:43 +0000 (23:05 +0000)]
Fix assertion failure on MaybeODRUseExprs.

In VisitNonTypeTemplateParamDecl, before SubstExpr with the default argument,
we should create a ConstantEvaluated ExpressionEvaluationContext. Without this,
it is possible to use a PotentiallyEvaluated ExpressionEvaluationContext; and
MaybeODRUseExprs will not be cleared when popping the context, causing
assertion failure.

This is similar to how we handle the context before SubstExpr with the
default argument, in SubstDefaultTemplateArgument.

Part of PR13986.
rdar://24480205

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

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

8 years agoMinor cleanup of Sema::CheckEnableIf. NFC.
George Burgess IV [Wed, 24 Feb 2016 22:31:14 +0000 (22:31 +0000)]
Minor cleanup of Sema::CheckEnableIf. NFC.

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

8 years agoRevert "Don't convert a char to a const char *"
David Majnemer [Wed, 24 Feb 2016 22:07:26 +0000 (22:07 +0000)]
Revert "Don't convert a char to a const char *"

This reverts commit r261780.  It turns out the original code was just
fine.  An overload for ltrim which takes char was added but the Doxygen
docs haven't seemed to pick it up.

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

8 years agoFix build by using hasFlag instead of hasArg.
Peter Collingbourne [Wed, 24 Feb 2016 22:03:06 +0000 (22:03 +0000)]
Fix build by using hasFlag instead of hasArg.

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

8 years agoPR26237: Fix iterator invalidation bug that occurs if serializing
Richard Smith [Wed, 24 Feb 2016 21:59:10 +0000 (21:59 +0000)]
PR26237: Fix iterator invalidation bug that occurs if serializing
specializations of a template manages to trigger deserialization of more
specializations of the same template.

No test case provided: this is hard to reliably test due to standard library
differences.

Patch by Vassil Vassilev!

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

8 years agoDon't convert a char to a const char *
David Majnemer [Wed, 24 Feb 2016 21:55:58 +0000 (21:55 +0000)]
Don't convert a char to a const char *

This fixes PR26728.

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

8 years ago[CUDA] Mark all CUDA device-side function defs, decls, and calls as convergent.
Justin Lebar [Wed, 24 Feb 2016 21:55:11 +0000 (21:55 +0000)]
[CUDA] Mark all CUDA device-side function defs, decls, and calls as convergent.

Summary:
This is important for e.g. the following case:

  void sync() { __syncthreads(); }
  void foo() {
    do_something();
    sync();
    do_something_else():
  }

Without this change, if the optimizer does not inline sync() (which it
won't because __syncthreads is also marked as noduplicate, for now
anyway), it is free to perform optimizations on sync() that it would not
be able to perform on __syncthreads(), because sync() is not marked as
convergent.

Similarly, we need a notion of convergent calls, since in the case when
we can't statically determine a call's target(s), we need to know
whether it's safe to perform optimizations around the call.

This change is conservative; the optimizer will remove these attrs where
it can, see r260318, r260319.

Reviewers: majnemer

Subscribers: cfe-commits, jhen, echristo, tra

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

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

8 years ago[CUDA] do not allow attribute-based overloading for __global__ functions.
Artem Belevich [Wed, 24 Feb 2016 21:54:45 +0000 (21:54 +0000)]
[CUDA] do not allow attribute-based overloading for __global__ functions.

__global__ functions are present on both host and device side,
so providing __host__ or __device__ overloads is not going to
do anything useful.

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

8 years ago[CUDA] Add conversion operators for threadIdx, blockIdx, gridDim, and blockDim to...
Justin Lebar [Wed, 24 Feb 2016 21:49:33 +0000 (21:49 +0000)]
[CUDA] Add conversion operators for threadIdx, blockIdx, gridDim, and blockDim to uint3 and dim3.

Summary:
This lets you write, e.g.

  uint3 a = threadIdx;
  uint3 b = blockIdx;
  dim3 c = gridDim;
  dim3 d = blockDim;

which is legal in nvcc, but was not legal in clang.

The fact that e.g. the type of threadIdx is not actually uint3 is still
observable, but now you have to try to observe it.

Reviewers: tra

Subscribers: echristo, cfe-commits

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

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

8 years ago[CUDA] Add hack so code which includes "curand.h" doesn't break.
Justin Lebar [Wed, 24 Feb 2016 21:49:31 +0000 (21:49 +0000)]
[CUDA] Add hack so code which includes "curand.h" doesn't break.

Summary:
curand.h includes curand_mtgp32_kernel.h.  In host mode, this header
redefines threadIdx and blockDim, giving them their "proper" types of
uint3 and dim3, respectively.

clang has its own plan for these variables -- their types are magic
builtin classes.  So these redefinitions are incompatible.

As a hack, we force-include the offending CUDA header and use #defines
to get the right types for threadIdx and blockDim.

Reviewers: tra

Subscribers: echristo, cfe-commits

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

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

8 years ago[CUDA] Don't specify exact line numbers in cuda-builtin-vars.cu.
Justin Lebar [Wed, 24 Feb 2016 21:49:30 +0000 (21:49 +0000)]
[CUDA] Don't specify exact line numbers in cuda-builtin-vars.cu.

This makes the test less fragile to changes to cuda_builtin_vars.h.

Test-only change.

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

8 years agoBail on compilation as soon as a job fails.
Justin Lebar [Wed, 24 Feb 2016 21:49:28 +0000 (21:49 +0000)]
Bail on compilation as soon as a job fails.

Summary:
(Re-land of r260448, which was reverted in r260522 due to a test failure
in Driver/output-file-cleanup.c that only showed up in fresh builds.)

Previously we attempted to be smart; if one job failed, we'd run all
jobs that didn't depend on the failing job.

Problem is, this doesn't work well for e.g. CUDA compilation without
-save-temps.  In this case, the device-side and host-side Assemble
actions (which actually are responsible for preprocess, compile,
backend, and assemble, since we're not saving temps) are necessarily
distinct.  So our clever heuristic doesn't help us, and we repeat every
error message once for host and once for each device arch.

The main effect of this change, other than fixing CUDA, is that if you
pass multiple cc files to one instance of clang and you get a compile
error, we'll stop when the first cc1 job fails.

Reviewers: echristo

Subscribers: cfe-commits, jhen, echristo, tra, rafael

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

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

8 years agoMake test/Driver/output-file-cleanup.c hermetic.
Justin Lebar [Wed, 24 Feb 2016 21:49:26 +0000 (21:49 +0000)]
Make test/Driver/output-file-cleanup.c hermetic.

Summary:
It checks that certain files do and exist, so make sure that they don't
exist at the beginning of the test.

This hid a failure in r260448; to see the failure, you had to run the test with
a clean-ish objdir.

Subscribers: cfe-commits

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

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

8 years agoFix rejects-valid caused by r261297.
Nico Weber [Wed, 24 Feb 2016 20:58:14 +0000 (20:58 +0000)]
Fix rejects-valid caused by r261297.

r261297 called hasUserProvidedDefaultConstructor() to check if defining a
const object is ok.  This is incorrect for this example:

  struct X { template<typename ...T> X(T...); int n; };
  const X x; // formerly OK, now bogus error

Instead, track if a class has a defaulted default constructor, and disallow
a const object for classes that either have defaulted default constructors or
if they need an implicit constructor.

Bug report and fix approach by Richard Smith, thanks!

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

8 years agoAdd whole-program vtable optimization feature to Clang.
Peter Collingbourne [Wed, 24 Feb 2016 20:46:36 +0000 (20:46 +0000)]
Add whole-program vtable optimization feature to Clang.

This patch introduces the -fwhole-program-vtables flag, which enables the
whole-program vtable optimization feature (D16795) in Clang.

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

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

8 years agoFix typo in test/CodeGen/object-size.c CHECK line.
Bob Wilson [Wed, 24 Feb 2016 18:38:35 +0000 (18:38 +0000)]
Fix typo in test/CodeGen/object-size.c CHECK line.

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

8 years agoAArch64: fix Cyclone CPU features list.
Tim Northover [Wed, 24 Feb 2016 17:57:48 +0000 (17:57 +0000)]
AArch64: fix Cyclone CPU features list.

It turns out we don't have CRC after all. Who knew?

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

8 years agoObjective-C: Add a size field to non-fragile category metadata.
Manman Ren [Wed, 24 Feb 2016 17:49:50 +0000 (17:49 +0000)]
Objective-C: Add a size field to non-fragile category metadata.

This is mainly for extensibility. Note that fragile category metadata,
metadata for classes and protocols all have a size field.

Initial patch was provided by Greg Parker.

rdar://problem/24804226

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

8 years ago[CLANG] [AVX512] [BUILTIN] Adding PSHUF{L|H}W{128|256|512} builtin to clang .
Michael Zuckerman [Wed, 24 Feb 2016 17:39:35 +0000 (17:39 +0000)]
[CLANG] [AVX512] [BUILTIN] Adding PSHUF{L|H}W{128|256|512} builtin to clang .

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

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

8 years ago[WinEH] Make sure terminate handlers have funclet operands
David Majnemer [Wed, 24 Feb 2016 17:02:45 +0000 (17:02 +0000)]
[WinEH] Make sure terminate handlers have funclet operands

Calls to the terminate handler must be annotated within the exception
region they are within.

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

8 years ago[docs] Change non-c++ code blocks to 'text' format to fix a sphinx warning.
Alexander Kornienko [Wed, 24 Feb 2016 15:07:48 +0000 (15:07 +0000)]
[docs] Change non-c++ code blocks to 'text' format to fix a sphinx warning.

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

8 years ago[OpenCL] Add Sema checks for OpenCL 2.0 block
Xiuli Pan [Wed, 24 Feb 2016 04:29:36 +0000 (04:29 +0000)]
[OpenCL] Add Sema checks for OpenCL 2.0 block

Summary:
Add Sema checks for opencl 2.0 new features: Block.
This patch is partitioned from http://reviews.llvm.org/D16047

Reviewers: Anastasia

Subscribers: pekka.jaaskelainen, cfe-commits

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

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

8 years agoDefault vaarg lowering should support indirect struct types.
James Y Knight [Wed, 24 Feb 2016 02:59:33 +0000 (02:59 +0000)]
Default vaarg lowering should support indirect struct types.

Fixes PR11517 for SPARC.

On most targets, clang lowers va_arg itself, eschewing the use of the
llvm vaarg instruction. This is necessary (at least for now) as the type
argument to the vaarg instruction cannot represent all the ABI
information that is needed to support complex calling conventions.

However, on targets with a simpler varrags ABIs, the LLVM instruction
can work just fine, and clang can simply lower to it. Unfortunately,
even on such targets, vaarg with a struct argument would fail, because
the default lowering to vaarg was naive: it didn't take into account the
ABI attribute computed by classifyArgumentType. In particular, for the
DefaultABIInfo, structs are supposed to be passed indirectly and so
llvm's vaarg instruction should be emitted with a pointer argument.

Now, vaarg instruction emission is able to use computed ABIArgInfo for
the provided argument type, which allows the default ABI support to work
for structs too.

I haven't touched the EmitVAArg implementation for PPC32_SVR4 or XCore,
although I believe both are now redundant, and could be switched over to
use the default implementation as well.

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

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

8 years agoPR24667: fix quadratic runtime if textually-included modular headers define large...
Richard Smith [Tue, 23 Feb 2016 23:20:51 +0000 (23:20 +0000)]
PR24667: fix quadratic runtime if textually-included modular headers define large numbers of macros.

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

8 years ago[analyzer] Find ObjC 'self' decl even when block captures local named 'self'.
Devin Coughlin [Tue, 23 Feb 2016 22:26:04 +0000 (22:26 +0000)]
[analyzer] Find ObjC 'self' decl even when block captures local named 'self'.

When looking up the 'self' decl in block captures, make sure to find the actual
self declaration even when the block captures a local variable named 'self'.

rdar://problem/24751280

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

8 years ago[CMake] Add install-clang-format target by migrating to add_clang_tool
Chris Bieneman [Tue, 23 Feb 2016 20:33:15 +0000 (20:33 +0000)]
[CMake] Add install-clang-format target by migrating to add_clang_tool

This change migrates clang-format to add_clang_tool which makes a component-based install target. To support component-based installation the extra installed scripts all need to have the "clang-format" component too.

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

8 years agoRename Action::begin() to Action::input_begin().
Nico Weber [Tue, 23 Feb 2016 19:30:43 +0000 (19:30 +0000)]
Rename Action::begin() to Action::input_begin().

Also introduce inputs() that reutnrs an llvm::iterator_range.
Iterating over A->inputs() is much less mysterious than
iterating over *A.  No intended behavior change.

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

8 years agoReapply r261657.
Adrian Prantl [Tue, 23 Feb 2016 19:30:08 +0000 (19:30 +0000)]
Reapply r261657.
Remove an unnecessary workaround introduced in r259975. (NFC)

Now that LLVM r259973 allows replacing a temporary type with another
temporary we can rely on the original implementation.

It is possible for enums to be created as part of
their own declcontext. In this case a FwdDecl will be created
twice. This doesn't cause a problem because both FwdDecls are
entered into the ReplaceMap: finalize() will replace the first
FwdDecl with the second and then replace the second with
complete type.

Thanks to echristo for pointing this out.

# Conflicts:
# lib/CodeGen/CGDebugInfo.cpp

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

8 years agoRevert r261634 "Supporting all entities declared in lexical scope in LLVM debug info...
Hans Wennborg [Tue, 23 Feb 2016 19:10:16 +0000 (19:10 +0000)]
Revert r261634 "Supporting all entities declared in lexical scope in LLVM debug info." and r261657

r261634 and r261633 seems to have caused PR26715. r261657 depends on the former two.

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

8 years agoAmends r252104 to evaluate the controlling expression in an unevaluated context....
Aaron Ballman [Tue, 23 Feb 2016 18:55:15 +0000 (18:55 +0000)]
Amends r252104 to evaluate the controlling expression in an unevaluated context. This eliminates false-positive diagnostics about null pointer dereferences (etc) in the controlling expression.

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