]> granicus.if.org Git - clang/log
clang
8 years agoEnable the SafeStack sanitizer on CloudABI by default.
Ed Schouten [Tue, 29 Mar 2016 21:13:53 +0000 (21:13 +0000)]
Enable the SafeStack sanitizer on CloudABI by default.

Over the last month we've been testing SafeStack extensively. As far as
we know, it works perfectly fine. That why I'd like to see us having
this enabled by default for CloudABI.

This change introduces a getDefaultSanitizers() function that toolchains
can use to specify which sanitizers are enabled by default. Once all
flags are processed, only flags that had no -fno-sanitize overrides are
enabled.

Extend the thests for CloudABI to test both the default case and the
case in which we want to explicitly disable SafeStack.

Reviewed by: eugenis, pcc
Differential Revision: http://reviews.llvm.org/D18505

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

8 years ago[Sema] Attempt [2] to fix tests for utf-8 invalid format string specifiers
Bruno Cardoso Lopes [Tue, 29 Mar 2016 20:47:09 +0000 (20:47 +0000)]
[Sema] Attempt [2] to fix tests for utf-8 invalid format string specifiers

Some buildbots still complain. Followup from r264752 and 264765.

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

8 years ago[PGO] Move the instrumentation point closer to the value site.
Betul Buyukkurt [Tue, 29 Mar 2016 20:44:09 +0000 (20:44 +0000)]
[PGO] Move the instrumentation point closer to the value site.

For terminator instructions, the value profiling instrumentation
happens in a basic block other than where the value site resides.
This CR moves the instrumentation point prior to the value site.
Mostly NFC.

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

8 years agoclang-cl: Silently ignore /d2FastFail flag.
Nico Weber [Tue, 29 Mar 2016 19:41:02 +0000 (19:41 +0000)]
clang-cl: Silently ignore /d2FastFail flag.

It's some debugging flag for cl.exe related to how it writes crash dumps.

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

8 years ago[Sema] Attempt to fix tests for utf-8 invalid format string specifiers
Bruno Cardoso Lopes [Tue, 29 Mar 2016 18:38:44 +0000 (18:38 +0000)]
[Sema] Attempt to fix tests for utf-8 invalid format string specifiers

Followup from r264752.

Attempt to appease buildbots:
 http://lab.llvm.org:8011/builders/clang-ppc64be-linux/builds/2882
 http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/2619

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

8 years agoRemoved class FormatStyle, which is a struct, forward declaration from Refactoring...
Eric Liu [Tue, 29 Mar 2016 18:17:11 +0000 (18:17 +0000)]
Removed class FormatStyle, which is a struct, forward declaration from Refactoring.h to avoid compilation error.

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

8 years ago[Order Files] Fix order file usage
Chris Bieneman [Tue, 29 Mar 2016 17:51:08 +0000 (17:51 +0000)]
[Order Files] Fix order file usage

The CMake EXISTS operator needs to have the variable expanded. Not expanding this was causing the if statement to always be false, which made it impossible to pass linker order files in.

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

8 years ago[Sema] Handle UTF-8 invalid format string specifiers
Bruno Cardoso Lopes [Tue, 29 Mar 2016 17:35:02 +0000 (17:35 +0000)]
[Sema] Handle UTF-8 invalid format string specifiers

Improve invalid format string specifier handling by printing out
invalid specifiers characters with \x, \u and \U. Previously clang
would print gargabe whenever the character is unprintable.

Example, before:
  NSLog(@"%\u25B9"); => warning: invalid conversion specifier ' [-Wformat-invalid-specifier]
after:
  NSLog(@"%\u25B9"); => warning: invalid conversion specifier '\u25b9' [-Wformat-invalid-specifier]

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

rdar://problem/24672159

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

8 years agoAdded formatAndApplyAllReplacements that works on multiple files in libTooling.
Eric Liu [Tue, 29 Mar 2016 16:31:53 +0000 (16:31 +0000)]
Added formatAndApplyAllReplacements that works on multiple files in libTooling.

Summary:
formatAndApplyAllReplacements takes a set of Replacements, applies them on a
Rewriter, and reformats the changed code.

Reviewers: klimek, djasper

Subscribers: ioeric, klimek, cfe-commits

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

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

8 years ago[CUDA] Add missing #undef __DEVICE__ to CUDA shim header.
Justin Lebar [Tue, 29 Mar 2016 16:24:23 +0000 (16:24 +0000)]
[CUDA] Add missing #undef __DEVICE__ to CUDA shim header.

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

8 years ago[CUDA] Fix order of overloading preferences in comment.
Justin Lebar [Tue, 29 Mar 2016 16:24:22 +0000 (16:24 +0000)]
[CUDA] Fix order of overloading preferences in comment.

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

8 years ago[CUDA] Make CUDA description strings in langopts into noun phrases. NFC
Justin Lebar [Tue, 29 Mar 2016 16:24:20 +0000 (16:24 +0000)]
[CUDA] Make CUDA description strings in langopts into noun phrases.  NFC

rsmith quoth in D18380:

> This should be a noun phrase -- this string appears in contexts like
> "support for %0 is enabled" -- so this should be "treating
> unattributed [...]".

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

8 years ago[CUDA] Remove three obsolete CUDA cc1 flags.
Justin Lebar [Tue, 29 Mar 2016 16:24:16 +0000 (16:24 +0000)]
[CUDA] Remove three obsolete CUDA cc1 flags.

Summary:
* -fcuda-target-overloads

  Previously unconditionally set to true by the driver.  Necessary for
  correct functioning of the compiler -- our CUDA headers wrapper won't
  compile without this.

* -fcuda-disable-target-call-checks

  Previously unconditionally set to true by the driver.  Necessary to
  compile almost any external CUDA code -- almost all libraries assume
  that host+device code can call host or device functions.

* -fcuda-allow-host-calls-from-host-device

  No effect when target overloading is enabled.

Reviewers: tra

Subscribers: rsmith, cfe-commits

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

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

8 years ago[AMDGPU] Switch linker to amdphdrs + update test
Konstantin Zhuravlyov [Tue, 29 Mar 2016 15:54:09 +0000 (15:54 +0000)]
[AMDGPU] Switch linker to amdphdrs + update test

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

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

8 years agoAdd additional Hi/Lo registers to Clang MipsTargetInfoBase
Hrvoje Varga [Tue, 29 Mar 2016 12:46:16 +0000 (12:46 +0000)]
Add additional Hi/Lo registers to Clang MipsTargetInfoBase
Differential Revision: http://reviews.llvm.org/D17378

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

8 years ago[OPENMP 4.5] Allow data members in 'aligned' clause.
Alexey Bataev [Tue, 29 Mar 2016 10:59:56 +0000 (10:59 +0000)]
[OPENMP 4.5] Allow data members in 'aligned' clause.

OpenMP 4.5 allows privatization of data members OpenMP clauses. Patch
adds support for data members in 'aligned' clause.

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

8 years agoVisual Studio native visualization for TemplateParameterList and TemplateTypeParmDecl
Mike Spertus [Tue, 29 Mar 2016 10:57:24 +0000 (10:57 +0000)]
Visual Studio native visualization for TemplateParameterList and TemplateTypeParmDecl

With this change, a TemplateParameterList will suggestively display in the locals window something like:
  <typename T, int i>

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

8 years agoVisual Studio native visualizer for InjectedClassNameType
Mike Spertus [Tue, 29 Mar 2016 09:24:45 +0000 (09:24 +0000)]
Visual Studio native visualizer for InjectedClassNameType

Also fixes some omissions for TemplateSpecializationType

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

8 years ago[OPENMP] Remove extra code transformation.
Alexey Bataev [Tue, 29 Mar 2016 08:58:54 +0000 (08:58 +0000)]
[OPENMP] Remove extra code transformation.

For better support of some specific GNU extensions some extra
transformation of AST nodes were introduced. These transformations are
very hard to handle. The code is improved in handling of these
extensions by using captured expressions construct.

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

8 years ago[OPENMP] Allow runtime insert its own code inside OpenMP regions.
Alexey Bataev [Tue, 29 Mar 2016 05:34:15 +0000 (05:34 +0000)]
[OPENMP] Allow runtime insert its own code inside OpenMP regions.

Solution unifies interface of RegionCodeGenTy type to allow insert
runtime-specific code before/after main codegen action defined in
CGStmtOpenMP.cpp file. Runtime should not define its own RegionCodeGenTy
for general OpenMP directives, but must be allowed to insert its own
 (required) code to support target specific codegen.

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

8 years ago[analyzer] Use BodyFarm-synthesized body even when actual body available.
Devin Coughlin [Mon, 28 Mar 2016 23:55:58 +0000 (23:55 +0000)]
[analyzer] Use BodyFarm-synthesized body even when actual body available.

Change body autosynthesis to use the BodyFarm-synthesized body even when
an actual body exists. This enables the analyzer to use the simpler,
analyzer-provided body to model the behavior of the function rather than trying
to understand the actual body. Further, this makes the analyzer robust against
changes in headers that expose the implementations of those bodies.

rdar://problem/25145950

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

8 years ago[PGO] More comments how function pointers for indirect calls are mapped
Adam Nemet [Mon, 28 Mar 2016 22:18:53 +0000 (22:18 +0000)]
[PGO] More comments how function pointers for indirect calls are mapped
to function names

Summary:
Hopefully this will make it easier for the next person to figure all
this out...

Reviewers: bogner, davidxl

Subscribers: davidxl, cfe-commits

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

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

8 years agoImprovements to the ASTImporter to support LLDB top-level Clang expressions.
Sean Callanan [Mon, 28 Mar 2016 21:43:01 +0000 (21:43 +0000)]
Improvements to the ASTImporter to support LLDB top-level Clang expressions.

The testcase for this is in LLDB, adeed by r264662.

This patch adds support for a variety of new expression types to the AST
importer, mostly related to C++.  It also adds support for importing lambdas
correctly, and adds support for importing the attributes attached to any Decl.

Finally, the patch adds a new templated function to ASTNodeImporter that imports
arbitrary arrays of importable things into a bump-allocated array attached to
getToContext().  This is a pattern we see at many places in ASTNodeImporter;
rather than do it slightly differently at each point, this function does it one
way.

<rdar://problem/22864976>

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

8 years ago[modules] If both a module file and a module map for the same module are
Richard Smith [Mon, 28 Mar 2016 21:31:09 +0000 (21:31 +0000)]
[modules] If both a module file and a module map for the same module are
explicitly provided, and the module map lists a header that does not exist,
unmark the module as 'unavailable' when loading its .pcm file. (Use of the
module might still fail if the relevant headers aren't embedded, but this
behavior is now consistent with how we behave if the module map is not
provided, and with the desired behavior for embedding headers in modules.)

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

8 years ago[lanai] Add Lanai backend to clang driver.
Jacques Pienaar [Mon, 28 Mar 2016 21:02:54 +0000 (21:02 +0000)]
[lanai] Add Lanai backend to clang driver.

Changes to clang to add Lanai backend. Adds a new target, ABI and toolchain.

General Lanai backend discussion on llvm-dev thread "[RFC] Lanai backend" (http://lists.llvm.org/pipermail/llvm-dev/2016-February/095118.html).

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

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

8 years agoUpdate the description of Clang's MSVC compatibility flags
Reid Kleckner [Mon, 28 Mar 2016 20:42:41 +0000 (20:42 +0000)]
Update the description of Clang's MSVC compatibility flags

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

8 years ago[analyzer] Nullability: Don't warn along paths where null returned from non-null.
Devin Coughlin [Mon, 28 Mar 2016 20:30:25 +0000 (20:30 +0000)]
[analyzer] Nullability: Don't warn along paths where null returned from non-null.

Change the nullability checker to not warn along paths where null is returned from
a method with a non-null return type, even when the diagnostic for this return
has been suppressed. This prevents warning from methods with non-null return types
that inline methods that themselves return nil but that suppressed the diagnostic.

Also change the PreconditionViolated state component to be called "InvariantViolated"
because it is set when a post-condition is violated, as well.

rdar://problem/25393539

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

8 years agoPaper over the Windows-only enum initialization test failure until the bug is fixed
Reid Kleckner [Mon, 28 Mar 2016 20:13:55 +0000 (20:13 +0000)]
Paper over the Windows-only enum initialization test failure until the bug is fixed

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

8 years agoThis file was accidentally committed with bad line endings. Fixed...
Mike Spertus [Mon, 28 Mar 2016 19:08:27 +0000 (19:08 +0000)]
This file was accidentally committed with bad line endings. Fixed...

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

8 years agoConvert to Unix line endings due to previous commit error.
Mike Spertus [Mon, 28 Mar 2016 18:24:22 +0000 (18:24 +0000)]
Convert to Unix line endings due to previous commit error.

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

8 years agoUse VS2015 Project Support for Natvis to eliminate the need to manually install clang...
Mike Spertus [Mon, 28 Mar 2016 18:03:37 +0000 (18:03 +0000)]
Use VS2015 Project Support for Natvis to eliminate the need to manually install clang native visualizer

This is the clang equivalent to llvm commit 264601. When using Visual Studio 2015, cmake now puts the native visualizers in llvm.sln, so the developer automatically sees custom visualizations.
Much thanks to ariccio who provided extensive help on this change. (manual installation still needed on VS2013).

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

8 years agoWindows: Shrink sizeof(MacroInfo) from 256 to 248, MacroDirective 24 to 16
Nico Weber [Mon, 28 Mar 2016 17:28:06 +0000 (17:28 +0000)]
Windows: Shrink sizeof(MacroInfo) from 256 to 248, MacroDirective 24 to 16

In the Microsoft ABI, only bitfields with identical types get packed together,
so use consistently use one of the two instead of a mix.
Saves 457kB when parsing windows.h.

No intended behavior change.

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

8 years agoReduce size of DefinitionData from 120 to 96 bytes on Windows.
Nico Weber [Mon, 28 Mar 2016 14:55:24 +0000 (14:55 +0000)]
Reduce size of DefinitionData from 120 to 96 bytes on Windows.

In the Microsoft ABI, only bitfields with identical types get
packed together, so use unsigned consistently instead of a
bool / unsigned mix.

No intended behavior change.

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

8 years agoRevert "[OPENMP] Allow runtime insert its own code inside OpenMP regions."
Alexey Bataev [Mon, 28 Mar 2016 12:58:34 +0000 (12:58 +0000)]
Revert "[OPENMP] Allow runtime insert its own code inside OpenMP regions."

Reverting because of failed tests.

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

8 years ago[OPENMP] Allow runtime insert its own code inside OpenMP regions.
Alexey Bataev [Mon, 28 Mar 2016 12:52:58 +0000 (12:52 +0000)]
[OPENMP] Allow runtime insert its own code inside OpenMP regions.

Solution unifies interface of RegionCodeGenTy type to allow insert
runtime-specific code before/after main codegen action defined in
CGStmtOpenMP.cpp file. Runtime should not define its own RegionCodeGenTy
for general OpenMP directives, but must be allowed to insert its own
 (required) code to support target specific codegen.

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

8 years ago[CLANG][avx512][BUILTIN] Adding fixupimm{pd|ps|sd|ss}
Michael Zuckerman [Mon, 28 Mar 2016 12:23:09 +0000 (12:23 +0000)]
[CLANG][avx512][BUILTIN] Adding fixupimm{pd|ps|sd|ss}
getexp{sd|ss} getmant{sd|ss} kunpck{di|si} loada{pd|ps} loaddqu{di|hi|qi|si} max{sd|ss} min{sd|ss} kmov16 builtins to clang

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

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

8 years agoRevert "[OPENMP] Allow runtime insert its own code inside OpenMP regions."
Alexey Bataev [Mon, 28 Mar 2016 10:12:03 +0000 (10:12 +0000)]
Revert "[OPENMP] Allow runtime insert its own code inside OpenMP regions."

This reverts commit 3ee791165100607178073f14531a0dc90c622b36.

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

8 years ago[OPENMP] Allow runtime insert its own code inside OpenMP regions.
Alexey Bataev [Mon, 28 Mar 2016 09:53:43 +0000 (09:53 +0000)]
[OPENMP] Allow runtime insert its own code inside OpenMP regions.

Solution unifies interface of RegionCodeGenTy type to allow insert
runtime-specific code before/after main codegen action defined in
CGStmtOpenMP.cpp file. Runtime should not define its own RegionCodeGenTy
for general OpenMP directives, but must be allowed to insert its own
  (required) code to support target specific codegen.

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

8 years agoP0138R2: Allow direct-list-initialization of an enumeration from an integral
Richard Smith [Mon, 28 Mar 2016 06:08:37 +0000 (06:08 +0000)]
P0138R2: Allow direct-list-initialization of an enumeration from an integral
value that can convert to the enum's underlying type.

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

8 years agoFix serialization/deserialization for __uuidof
David Majnemer [Mon, 28 Mar 2016 03:19:50 +0000 (03:19 +0000)]
Fix serialization/deserialization for __uuidof

I broke this back in r264529 because I forgot to serialize the UuidAttr
member.  Fix this by replacing the UuidAttr with a StringRef which is
properly serialized and deserialized.

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

8 years ago[modules] When encoding SourceLocations in bitcode, rotate the 'is macro' flag
Richard Smith [Sun, 27 Mar 2016 20:13:24 +0000 (20:13 +0000)]
[modules] When encoding SourceLocations in bitcode, rotate the 'is macro' flag
bit from the top bit to the bottom bit, so that we don't need 6 VBR6 hunks for
each macro location. Reduces libstdc++ module size by about 1%.

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

8 years agoEncapsulate a couple of on-disk structures a little more.
Richard Smith [Sun, 27 Mar 2016 07:28:06 +0000 (07:28 +0000)]
Encapsulate a couple of on-disk structures a little more.

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

8 years agoRemove unused support for replacing declarations from chained AST files.
Richard Smith [Sun, 27 Mar 2016 05:52:25 +0000 (05:52 +0000)]
Remove unused support for replacing declarations from chained AST files.

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

8 years agoUse the correct alignment for uuid descriptors
David Majnemer [Sun, 27 Mar 2016 04:46:14 +0000 (04:46 +0000)]
Use the correct alignment for uuid descriptors

The _GUID_ descriptors emitted by MSVC have alignment 8 for 64-bit
builds: we should do the same if the linker picks the "wrong" COMDAT.

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

8 years agoImprove the representation of CXXUuidofExpr
David Majnemer [Sun, 27 Mar 2016 04:46:07 +0000 (04:46 +0000)]
Improve the representation of CXXUuidofExpr

Keep a pointer to the UuidAttr that the CXXUuidofExpr corresponds to.
This makes translating from __uuidof to the underlying constant a lot
more straightforward.

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

8 years ago[NFC] Tweak diagnostic for template template arguments, to include template aliases.
Faisal Vali [Sat, 26 Mar 2016 20:46:45 +0000 (20:46 +0000)]
[NFC] Tweak diagnostic for template template arguments, to include template aliases.

The prior diagnostic (err_template_arg_not_class_template) would state that the template argument to a template template parameter can only be a class template, when it can also be a template alias.  The newly renamed diagnostic (err_template_arg_not_valid_template) mentions template aliases.

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

8 years agoCheck if a path is already absolute before trying to make it so.
Bob Wilson [Sat, 26 Mar 2016 18:55:13 +0000 (18:55 +0000)]
Check if a path is already absolute before trying to make it so.

The FileSystem::makeAbsolute function has been calculating the current
working directory unconditionally, even when it is not needed. This calls
down to llvm::sys::fs::current_path, which is relatively expensive
because it stats two directories, regardless of whether those paths are
already in the stat cache. The net effect is that when using the
VFS, every stat during header search turns into three stats. With this
change, we get back to a single stat for absolute directory paths.

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

8 years ago[Cxx1z-constexpr-lambda-P0170R1] Support parsing of constexpr specifier (and its...
Faisal Vali [Sat, 26 Mar 2016 16:11:37 +0000 (16:11 +0000)]
[Cxx1z-constexpr-lambda-P0170R1]  Support parsing of constexpr specifier (and its inference) on lambda expressions

Support the constexpr specifier on lambda expressions - and support its inference from the lambda call operator's body.

i.e.
  auto L = [] () constexpr { return 5; };
  static_assert(L() == 5); // OK
  auto Implicit = [] (auto a) { return a; };
  static_assert(Implicit(5) == 5);

We do not support evaluation of lambda's within constant expressions just yet.

Implementation Strategy:
  - teach ParseLambdaExpressionAfterIntroducer to expect a constexpr specifier and mark the invented function call operator's declarator's decl-specifier with it; Have it emit fixits for multiple decl-specifiers (mutable or constexpr) in this location.
  - for cases where constexpr is not explicitly specified, have buildLambdaExpr check whether the invented function call operator satisfies the requirements of a constexpr function, by calling CheckConstexprFunctionDecl/Body.

Much obliged to Richard Smith for his patience and his care, in ensuring the code is clang-worthy.

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

8 years agoDon't warn on "use" of undefined inline function that isn't actually an ODR
Richard Smith [Fri, 25 Mar 2016 22:29:27 +0000 (22:29 +0000)]
Don't warn on "use" of undefined inline function that isn't actually an ODR
use. In order for this to fire, the function needed to be a templated function
marked 'constexpr' and declared but not defined. This weird pattern appears in
libstdc++'s alloc_traits.h.

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

8 years agoStore list of undefined-but-used objects in a deterministic order to fix
Richard Smith [Fri, 25 Mar 2016 21:49:43 +0000 (21:49 +0000)]
Store list of undefined-but-used objects in a deterministic order to fix
non-deterministic diagnostics (and non-deterministic PCH files). Check these
when building a module rather than serializing it; it's not reasonable for a
module's use to be satisfied by a definition in the user of the module.

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

8 years agoDelete dead variable.
Richard Smith [Fri, 25 Mar 2016 21:46:44 +0000 (21:46 +0000)]
Delete dead variable.

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

8 years ago[analyzer] Add CIFIlter modeling to DeallocChecker.
Devin Coughlin [Fri, 25 Mar 2016 21:18:22 +0000 (21:18 +0000)]
[analyzer] Add CIFIlter modeling to DeallocChecker.

The -dealloc method in CIFilter is highly unusual in that it will release
instance variables belonging to its *subclasses* if the variable name
starts with "input" or backs a property whose name starts with "input".
Subclasses should not release these ivars in their own -dealloc method --
doing so could result in an over release.

Before this commit, the DeallocChecker would warn about missing releases for
such "input" properties -- which could cause users of the analyzer to add
over releases to silence the warning.

To avoid this, DeallocChecker now treats CIFilter "input-prefixed" ivars
as MustNotReleaseDirectly and so will not require a release. Further, it
will now warn when such an ivar is directly released in -dealloc.

rdar://problem/25364901

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

8 years ago[ASTMatchers] Don't use brace-init lists.
Samuel Benzaquen [Fri, 25 Mar 2016 19:41:32 +0000 (19:41 +0000)]
[ASTMatchers] Don't use brace-init lists.

They are not supported everywhere yet.
This fixes the MSVC build.

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

8 years ago[ObjCXX] Warn undeclared identifiers.
Manman Ren [Fri, 25 Mar 2016 18:43:46 +0000 (18:43 +0000)]
[ObjCXX] Warn undeclared identifiers.

Instantiation dependence were not being handled correctly for OpqaueValueExpr
AST nodes. As a result, if an undeclared identifier was used in a CXXNewExpr
that is assigned to a ObjC property, there would be no error during parsing, and
there would be a crash during code gen. This patch makes sure that an error
will be issued during parsing in this case.

Before the fix, if CXXNewExpr has a typo, its InstantiationDependent will be
set to true, but if it is wrapped in a OpaqueValueExpr, the OpaqueValueExpr will
not be instantiation dependent, causing the TypoExpr not be to resolved. The fix
propagates InstantiationDependent to OpaqueValueExpr from its SourceExpr. It
also propagates the other instantiation bits.

rdar://24975562

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

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

8 years ago[ASTMatchers] Fix build for VariadicFunction.
Samuel Benzaquen [Fri, 25 Mar 2016 17:46:02 +0000 (17:46 +0000)]
[ASTMatchers] Fix build for VariadicFunction.

Under some conditions the implicit conversion from array to ArrayRef<>
is not working.
Fix the build by making it explicit.

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

8 years ago[index] Remove redundancy between symbol kind and language
Ben Langmuir [Fri, 25 Mar 2016 17:01:59 +0000 (17:01 +0000)]
[index] Remove redundancy between symbol kind and language

Condense the ObjCKIND and CXXKIND options into just KIND, since the
language was already specified on a per-symbol basis and this
information was redundant. This only changes the internal
representation; naturally the libclang interface remains the same.

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

8 years ago[ASTMatchers] Add own version of VariadicFunction.
Samuel Benzaquen [Fri, 25 Mar 2016 16:29:30 +0000 (16:29 +0000)]
[ASTMatchers] Add own version of VariadicFunction.

Summary:
llvm::VariadicFunction is only being used by ASTMatchers.
Having our own copy here allows us to remove the other one from llvm/ADT.
Also, we can extend the API to meet our needs without modifying the common
implementation.

Reviewers: alexfh

Subscribers: klimek, cfe-commits

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

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

8 years ago[modules] Store a local offset to DeclContext lexical and visible contents. Saves...
Richard Smith [Fri, 25 Mar 2016 01:17:43 +0000 (01:17 +0000)]
[modules] Store a local offset to DeclContext lexical and visible contents. Saves a few bytes for each primary DeclContext.

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

8 years agoCGLoopInfo: Use the MD_loop metadata kind from r264371, NFC
Duncan P. N. Exon Smith [Fri, 25 Mar 2016 00:38:14 +0000 (00:38 +0000)]
CGLoopInfo: Use the MD_loop metadata kind from r264371, NFC

Besides a small compile-time speedup, there should be no real
functionality change here.

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

8 years agoDebug Info: Add a testcase for the bug introduced by r259975.
Adrian Prantl [Fri, 25 Mar 2016 00:20:35 +0000 (00:20 +0000)]
Debug Info: Add a testcase for the bug introduced by r259975.
In r259975 we rauw'ed the scope of enum declarations without taking into
account that DIBuilder strips out scope references that point to the
DICompileUnit to facilitate type uniquing.

This testcase guards against making the same mistake again.
<rdar://problem/25078246>

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

8 years agoFix nondeterminism in computation of builtin operator overload sets.
Richard Smith [Fri, 25 Mar 2016 00:08:53 +0000 (00:08 +0000)]
Fix nondeterminism in computation of builtin operator overload sets.

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

8 years ago[modules] Store offset to LOCAL_REDECLARATIONS record relative to the current
Richard Smith [Thu, 24 Mar 2016 23:41:14 +0000 (23:41 +0000)]
[modules] Store offset to LOCAL_REDECLARATIONS record relative to the current
record rather than relative to the start of the bitcode file. Saves a couple of
bytes per LOCAL_REDECLARATIONS record (also makes diffs of llvm-bcanalyzer
output more useful when tracking down nondeterminism...).

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

8 years agoAttach profile summary information to Module.
Easwaran Raman [Thu, 24 Mar 2016 21:32:25 +0000 (21:32 +0000)]
Attach profile summary information to Module.

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

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

8 years agoRevert "Recommitted r263425 "Supporting all entities declared in lexical scope in...
Reid Kleckner [Thu, 24 Mar 2016 20:38:43 +0000 (20:38 +0000)]
Revert "Recommitted r263425 "Supporting all entities declared in lexical scope in LLVM debug info." After fixing PR26942 (the fix is included in this commit)."

This reverts commit r264281.

This change breaks building Chromium for iOS. We'll upload a reproducer
to the PR soon.

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

8 years agoChange ADL to produce lookup results in a deterministic order. This fixes some
Richard Smith [Thu, 24 Mar 2016 19:12:22 +0000 (19:12 +0000)]
Change ADL to produce lookup results in a deterministic order. This fixes some
rare issues with nondeterministic diagnostic order, and some very common issues
with nondeterministic module builds.

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

8 years agoFix a missing comma between two string literals.
Etienne Bergeron [Thu, 24 Mar 2016 18:29:24 +0000 (18:29 +0000)]
Fix a missing comma between two string literals.

Summary:
The two literals are currently appended.

I'm not sure what was broken by this. Please double check carefully.

Silly bug found by an on-going checker for clang-tidy.

Reviewers: alexfh, arsenm, rnk

Subscribers: cfe-commits

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

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

8 years agoDsiable FormatStyle::GetStyleOfFile test case for mingw.
Eric Liu [Thu, 24 Mar 2016 14:59:39 +0000 (14:59 +0000)]
Dsiable FormatStyle::GetStyleOfFile test case for mingw.

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

8 years agoRecommitted r263425 "Supporting all entities declared in lexical scope in LLVM debug...
Amjad Aboud [Thu, 24 Mar 2016 13:30:41 +0000 (13:30 +0000)]
Recommitted r263425 "Supporting all entities declared in lexical scope in LLVM debug info."
After fixing PR26942 (the fix is included in this commit).

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

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

8 years agoAdded support for different VFSs in format::getStyle. Disable platform-related test...
Eric Liu [Thu, 24 Mar 2016 13:22:42 +0000 (13:22 +0000)]
Added support for different VFSs in format::getStyle. Disable platform-related test case for MS compilers to avoid breaking buildbot.

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

8 years agoRevert "Added support for different VFSs in format::getStyle."
Eric Liu [Thu, 24 Mar 2016 13:22:37 +0000 (13:22 +0000)]
Revert "Added support for different VFSs in format::getStyle."

This reverts commit r264253. It is breaking the buildbot http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/2203

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

8 years agoRevert "removed redundant comment in format::getStyle."
Eric Liu [Thu, 24 Mar 2016 13:22:28 +0000 (13:22 +0000)]
Revert "removed redundant comment in format::getStyle."

This reverts commit r264254.

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

8 years agoFix Sphinx errors with documentation build.
Aaron Ballman [Thu, 24 Mar 2016 12:34:44 +0000 (12:34 +0000)]
Fix Sphinx errors with documentation build.

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

8 years agoRevert "Added support for different VFSs in format::getStyle."
Eric Liu [Thu, 24 Mar 2016 11:25:28 +0000 (11:25 +0000)]
Revert "Added support for different VFSs in format::getStyle."

This reverts commit r264253. It is breaking the buildbot http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/2203

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

8 years agoRevert "removed redundant comment in format::getStyle."
Eric Liu [Thu, 24 Mar 2016 11:24:49 +0000 (11:24 +0000)]
Revert "removed redundant comment in format::getStyle."

This reverts commit r264254.

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

8 years agoremoved redundant comment in format::getStyle.
Eric Liu [Thu, 24 Mar 2016 10:50:26 +0000 (10:50 +0000)]
removed redundant comment in format::getStyle.

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

8 years agoAdded support for different VFSs in format::getStyle.
Eric Liu [Thu, 24 Mar 2016 10:50:17 +0000 (10:50 +0000)]
Added support for different VFSs in format::getStyle.

Summary:
Previously, format::getStyle assumes that the given file resides in
the real file system, which prevents the use of virtual file system in testing etc.
This patch adds a parameter in format::getStyle interface so that users can specify
the right file system. By default, the file system is the real file system.

Reviewers: djasper, klimek

Subscribers: cfe-commits, klimek

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

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

8 years agoTest commit access to clang repo.
Eric Liu [Thu, 24 Mar 2016 10:21:00 +0000 (10:21 +0000)]
Test commit access to clang repo.

Summary: Test commit access to clang repo.

Reviewers: cfe-commits

Subscribers: klimek

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

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

8 years ago[OpenCL] Add ocl and spir version for spir target
Xiuli Pan [Thu, 24 Mar 2016 03:57:17 +0000 (03:57 +0000)]
[OpenCL] Add ocl and spir version for spir target

Summary: Add opencl.spir.version and opencl.ocl.version metadata for CodeGen to identify OpenCL version.

Reviewers: yaxunl, Anastasia

Subscribers: cfe-commits, pekka.jaaskelainen

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

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

8 years agoAdd release notes for the removal of the silent include of altivec.h.
Eric Christopher [Thu, 24 Mar 2016 01:28:25 +0000 (01:28 +0000)]
Add release notes for the removal of the silent include of altivec.h.

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

8 years agoThe time when -faltivec (or, on clang only, -maltivec) will magically
Eric Christopher [Thu, 24 Mar 2016 01:26:08 +0000 (01:26 +0000)]
The time when -faltivec (or, on clang only, -maltivec) will magically
include altivec.h has come and gone.

Rationale: This causes modules, rewrite-includes, etc to be sad and
people should just include altivec.h in their source.

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

8 years agoDisplay const/volatile/restrict qualifiers in Visual Studio visualizations
Mike Spertus [Thu, 24 Mar 2016 00:38:54 +0000 (00:38 +0000)]
Display const/volatile/restrict qualifiers in Visual Studio visualizations

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

8 years agoModules builds are necessarily compile actions, but they don't
Eric Christopher [Thu, 24 Mar 2016 00:34:02 +0000 (00:34 +0000)]
Modules builds are necessarily compile actions, but they don't
necessarily produce object files. Turn off split dwarf if we're not
producing a file that the driver believes is an object file.

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

8 years agoNFC: clarify comment on lock-free macros
JF Bastien [Thu, 24 Mar 2016 00:20:44 +0000 (00:20 +0000)]
NFC: clarify comment on lock-free macros

Used by both libstdc++ and libc++.

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

8 years agoFix a typo, Tiles -> Files, NFC
Vedant Kumar [Wed, 23 Mar 2016 23:51:36 +0000 (23:51 +0000)]
Fix a typo, Tiles -> Files, NFC

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

8 years agoclang-cl: Add a FIXME for bumping the default msc version.
Nico Weber [Wed, 23 Mar 2016 23:26:59 +0000 (23:26 +0000)]
clang-cl: Add a FIXME for bumping the default msc version.

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

8 years agoFix typo in test from r264210, sigh.
Nico Weber [Wed, 23 Mar 2016 23:01:38 +0000 (23:01 +0000)]
Fix typo in test from r264210, sigh.

(The test passes both with and without this change, but it's confusing without
it.)

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

8 years agoclang-cl: With -fmsc-version=1900, use MSVS2015 diag formatting.
Nico Weber [Wed, 23 Mar 2016 22:57:55 +0000 (22:57 +0000)]
clang-cl: With -fmsc-version=1900, use MSVS2015 diag formatting.

Remove tests that have neither a triple nor an explicit -fmsc-version flag,
since in the absence of an -fmsc-version flag, the implicit value of the flag
is 17 (MSVC2013) with MSVC triples but 0 (not set) for other triples, and
the default triple is platform dependent.

This relands r263974 with a test fix.

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

8 years ago[CUDA] Merge most of CodeGenCUDA/function-overload.cu into SemaCUDA/function-overload.cu.
Justin Lebar [Wed, 23 Mar 2016 22:42:30 +0000 (22:42 +0000)]
[CUDA] Merge most of CodeGenCUDA/function-overload.cu into SemaCUDA/function-overload.cu.

Summary:
Previously we were using the codegen test to ensure that we choose the
right overload.  But we can do this within sema, with a bit of
cleverness.

I left the constructor/destructor checks in CodeGen, because these
overloads (particularly on the destructors) are hard to check in Sema.

Reviewers: tra

Subscribers: cfe-commits

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

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

8 years ago[CUDA] Simplify SemaCUDA/function-overload.cu test.
Justin Lebar [Wed, 23 Mar 2016 22:42:28 +0000 (22:42 +0000)]
[CUDA] Simplify SemaCUDA/function-overload.cu test.

Summary:
Principally, don't hardcode the line numbers of various notes.  This
lets us make changes to the test without recomputing linenos everywhere.

Instead, just tell -verify that we may get 0 or more notes pointing to
the relevant function definitions.  Checking that we get exactly the
right note isn't so important (and anyway is checked elsewhere).

Reviewers: tra

Subscribers: cfe-commits

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

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

8 years ago[CUDA] Don't define __NVCC__.
Justin Lebar [Wed, 23 Mar 2016 22:42:27 +0000 (22:42 +0000)]
[CUDA] Don't define __NVCC__.

Summary:
We decided this makes life too difficult for code authors.  For example,
people may want to detect NVCC and disable variadic templates, which
NVCC does not support, but which we do.

Since people are going to have to change compiler flags *anyway* in
order to compile with clang, if they really want the old behavior, they
can pass -D__NVCC__.

Tested with tensorflow and thrust, no apparent problems.

Reviewers: tra

Subscribers: cfe-commits

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

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

8 years agoAdd missing __builtin_bitreverse8
Matt Arsenault [Wed, 23 Mar 2016 22:14:43 +0000 (22:14 +0000)]
Add missing __builtin_bitreverse8

Also add documentation for bitreverse builtins

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

8 years agoObjC: add getter/setter for class properties to global pool.
Manman Ren [Wed, 23 Mar 2016 21:39:31 +0000 (21:39 +0000)]
ObjC: add getter/setter for class properties to global pool.

rdar://problem/25323072

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

8 years agoMake SemaAccess smarter about determining when a dependent class might
Richard Smith [Wed, 23 Mar 2016 20:39:06 +0000 (20:39 +0000)]
Make SemaAccess smarter about determining when a dependent class might
instantiate to match a friend class declaration. It's still pretty dumb,
though.

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

8 years agoMake sure to perform dependent access checks when instantiating a
Richard Smith [Wed, 23 Mar 2016 20:07:07 +0000 (20:07 +0000)]
Make sure to perform dependent access checks when instantiating a
lambda-expression. We don't actually instantiate the closure type / operator()
in the template in order to produce the closure type / operator() in the
instantiation, so this isn't caught by the normal path.

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

8 years agoclang-cl: Fix remaining bugs in interaction of /Yc and /FI /showIncludes.
Nico Weber [Wed, 23 Mar 2016 18:46:57 +0000 (18:46 +0000)]
clang-cl: Fix remaining bugs in interaction of /Yc and /FI /showIncludes.

Instead of putting the /Yc header into ExtraDeps, give DependencyOutputOptions
a dedicated field for /Yc mode, and let HeaderIncludesCallback hang on to the
full DependencyOutputOptions object, not just ExtraDeps.

Reverts parts of r263352 that are now no longer needed.

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

8 years agoclang-cl: Add more tests for the interaction of /FI and /Yc /Yu.
Nico Weber [Wed, 23 Mar 2016 18:17:02 +0000 (18:17 +0000)]
clang-cl: Add more tests for the interaction of /FI and /Yc /Yu.

Most things even work; see the included FIXMEs for things that need polishing.

Also don't warn about unused flags for the `/Yuh2.h /FIh1.h /FIh2.h`.  The
common case is that the pch was built with `/Ych2.h /FIh1.h /FIh2.h`, so h1.h
is in the PCH, and we shouldn't warn about /FIh1.h not having an effect.
(If we wanted to get fancy, we could store the list of -include flags in the
pch and then check that it matches later on.)

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

8 years agoclang-cl: Include /FI headers in /showIncludes output.
Nico Weber [Wed, 23 Mar 2016 18:00:22 +0000 (18:00 +0000)]
clang-cl: Include /FI headers in /showIncludes output.

-H in gcc mode doesn't print -include headers, but they are included in
depfiles written by MMD and friends. Since /showIncludes is what's used instead
of depfiles, printing /FI there seems important (and matches cl.exe).

Instead of giving HeaderIncludeGen more options, just switch on ShowAllHeaders
in clang-cl mode and let clang::InitializePreprocessor() not put -include flags
in the <command line> block. This changes the behavior of -E slightly, and it
removes the <command line> flag from the output triggered by setting the
obscure CC_PRINT_HEADERS=1 env var to true while running clang. Both of these
seem ok to change.

http://reviews.llvm.org/D18401

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

8 years ago[NFC] Delete an unused function parameter from a static function
Faisal Vali [Wed, 23 Mar 2016 17:39:51 +0000 (17:39 +0000)]
[NFC] Delete an unused function parameter from a static function

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

8 years agoVisualize fields of records as they were declared in Visual Studio debugger
Mike Spertus [Wed, 23 Mar 2016 17:29:42 +0000 (17:29 +0000)]
Visualize fields of records as they were declared in Visual Studio debugger

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

8 years agoObjC: Handle boolean fixed type for enum.
Manman Ren [Wed, 23 Mar 2016 16:28:28 +0000 (16:28 +0000)]
ObjC: Handle boolean fixed type for enum.

Before this commit, we assert failure in ImplicitCastExpr
"unheralded conversion to bool". This commit fixes the assertion by using
the correct cast type when the fixed type is boolean.

This commit also fixes the behavior for Microsoft mode as well, since
Obj-C and Microsoft mode share the same code path.

rdar://24999533

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