]> granicus.if.org Git - clang/log
clang
9 years agoRevert "Allow -target= and --target options"
Richard Barton [Mon, 11 May 2015 17:05:05 +0000 (17:05 +0000)]
Revert "Allow -target= and --target options"

After mailing list discussion on 11-13 March we would prefer to stick to a
single spelling of the long option.

This reverts commit 30035fe1a7c759c89ee62eb46efce6b3790fcc08.

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

9 years ago[Sparc] Add support for 'sparcel' to clang.
Douglas Katzman [Mon, 11 May 2015 15:21:44 +0000 (15:21 +0000)]
[Sparc] Add support for 'sparcel' to clang.

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

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

9 years agoclang-format: Support aligning ObjC string literals.
Daniel Jasper [Mon, 11 May 2015 15:15:48 +0000 (15:15 +0000)]
clang-format: Support aligning ObjC string literals.

Before:
  NSString s = @"aaaa"
      @"bbbb";

After:
  NSString s = @"aaaa"
               @"bbbb";

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

9 years agoDisable __has_cpp_attribute when not compiling in C++ mode. As this feature test...
Aaron Ballman [Mon, 11 May 2015 14:09:50 +0000 (14:09 +0000)]
Disable __has_cpp_attribute when not compiling in C++ mode. As this feature test macro only supports C++ style attributes, it doesn't apply to code compiled as C code, and can lead to diagnostics when given a scoped attribute.

This addresses PR23435.

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

9 years agoclang-format: Appease the buildbots by including climits.
Daniel Jasper [Mon, 11 May 2015 13:52:13 +0000 (13:52 +0000)]
clang-format: Appease the buildbots by including climits.

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

9 years agoclang-format: Improve column layout.
Daniel Jasper [Mon, 11 May 2015 13:35:40 +0000 (13:35 +0000)]
clang-format: Improve column layout.

Specifically, calculate the deviation between the shortest and longest
element (which is used to prevent excessive whitespace) per column, not
overall. This automatically handles the corner cases of a single column
and a single row so that the actualy implementation becomes simpler.

Before:
  vector<int> x = {1,
                   aaaaaaaaaaaaaaaaaaaaaa,
                   2,
                   bbbbbbbbbbbbbbbbbbbbbb,
                   3,
                   cccccccccccccccccccccc};

After:
  vector<int> x = {1, aaaaaaaaaaaaaaaaaaaaaa,
                   2, bbbbbbbbbbbbbbbbbbbbbb,
                   3, cccccccccccccccccccccc};

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

9 years agoclang-format: Don't merge subsequent lines into _asm blocks.
Daniel Jasper [Mon, 11 May 2015 11:59:46 +0000 (11:59 +0000)]
clang-format: Don't merge subsequent lines into _asm blocks.

Before:
  _asm {
  } int i;

After:
  _asm {
  }
  int i;

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

9 years agoclang-format: [JS] Clean up export declaration parsing.
Daniel Jasper [Mon, 11 May 2015 09:14:50 +0000 (09:14 +0000)]
clang-format: [JS] Clean up export declaration parsing.

NFC intended.

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

9 years agoAVX-512: Changed CC parameter in "cmp" intrinsic
Elena Demikhovsky [Mon, 11 May 2015 09:03:41 +0000 (09:03 +0000)]
AVX-512: Changed CC parameter in "cmp" intrinsic
from i8 to i32 according to the Intel Spec

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

9 years agoclang-format: [JS] Parse exported functions as free-standing.
Daniel Jasper [Mon, 11 May 2015 09:03:10 +0000 (09:03 +0000)]
clang-format: [JS] Parse exported functions as free-standing.

Before:
  export function foo() {} export function bar() {}

After:
  export function foo() {
  }
  export function bar() {
  }

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

9 years agoRefactor MacroInfo so range for loops can be used to iterate its tokens.
Daniel Marjamaki [Mon, 11 May 2015 08:25:54 +0000 (08:25 +0000)]
Refactor MacroInfo so range for loops can be used to iterate its tokens.

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

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

9 years agoRefactor the formatter of clang-format.
Manuel Klimek [Mon, 11 May 2015 08:21:35 +0000 (08:21 +0000)]
Refactor the formatter of clang-format.

Pull various parts of the UnwrappedLineFormatter into their own
abstractions. NFC.

There are two things left for subsequent changes (to keep this
reasonably small)
- the UnwrappedLineFormatter now has a bad name
- the UnwrappedLineFormatter::format function is still too large

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

9 years agoGive isCompatibleWithMSVC a better interface
David Majnemer [Mon, 11 May 2015 03:57:49 +0000 (03:57 +0000)]
Give isCompatibleWithMSVC a better interface

We now use an enum which maps the marketing name (almost always a year)
to the major version number.

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

9 years ago[MS ABI] Import move assignment operators
David Majnemer [Mon, 11 May 2015 03:00:22 +0000 (03:00 +0000)]
[MS ABI] Import move assignment operators

MSVC 2015 changed behavior from 2013; it imports move assignment
operators.

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

9 years agoFix indentation problem introduced in r236964. NFC
Jonathan Roelofs [Mon, 11 May 2015 02:13:24 +0000 (02:13 +0000)]
Fix indentation problem introduced in r236964. NFC

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

9 years agoFix formatting of a few code blocks. NFC
Jonathan Roelofs [Mon, 11 May 2015 02:05:20 +0000 (02:05 +0000)]
Fix formatting of a few code blocks. NFC

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

9 years ago[MS ABI] Form member pointers from virtual funcs overriding vbases
David Majnemer [Sun, 10 May 2015 21:48:08 +0000 (21:48 +0000)]
[MS ABI] Form member pointers from virtual funcs overriding vbases

We didn't supporting taking the address of virtual member functions
which overrode a method in a virtual base.  We simply need to encode the
virtual base index in the member pointer.

This fixes PR23452.

N.B.  There is no data member pointer side to this change because taking
the address of a virtual bases' data member gives you a member pointer
whose type is derived from the virtual bases' type, not the most derived
type.

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

9 years ago[MS ABI] Update EH emission for MSVC 2015 compatibility
David Majnemer [Sun, 10 May 2015 21:38:26 +0000 (21:38 +0000)]
[MS ABI] Update EH emission for MSVC 2015 compatibility

MSVC 2015 renamed the symbol found by name lookup for 'std::terminate'
so we cannot rely on using '?terminate@@YAXXZ'.  Furthermore, it seems
that 2015 will be the first release of MSVC which permits inlining a
function which is noexcept into a function which isn't.  This is
implemented by creating a cleanup for the invoker which jumps to
__std_terminate.  Clang's implementation of this aspect of the MSVC
scheme is slightly less efficient in this respect because we use a
catch handler configured as a catch-all handler instead.

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

9 years agoclang-format: Improve wrapping of << operators.
Daniel Jasper [Sun, 10 May 2015 21:15:07 +0000 (21:15 +0000)]
clang-format: Improve wrapping of << operators.

Before:
  llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                      aaaaaaaaaaaaaaaa) << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;

After:
  llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
                      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                      aaaaaaaaaaaaaaaa)
               << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;

Also, cleanup and simplify the operator wrapping logic.

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

9 years agoDe-virtualize some const versions of getCanonicalDecl by redirecting to the non-const...
Craig Topper [Sun, 10 May 2015 18:40:12 +0000 (18:40 +0000)]
De-virtualize some const versions of getCanonicalDecl by redirecting to the non-const version. Most of the Decl hierarchy already did it this way this just makes the rest consistent.

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

9 years agoclang-format: Preserve line break before } in __asm { ... }.
Daniel Jasper [Sun, 10 May 2015 08:42:04 +0000 (08:42 +0000)]
clang-format: Preserve line break before } in __asm { ... }.

Some compilers ignore everything after a semicolon in such inline asm
blocks and thus, the closing brace must not be moved to the previous
line.

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

9 years agoclang-format: Fix bug in escaped newline calculation.
Daniel Jasper [Sun, 10 May 2015 08:00:25 +0000 (08:00 +0000)]
clang-format: Fix bug in escaped newline calculation.

This prevents clang-format from inadvertently joining stuff into macro
definitions as reported in llvm.org/PR23466.

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

9 years agoReapply r236854 and fixed r236867.
Daniel Jasper [Sun, 10 May 2015 07:47:19 +0000 (07:47 +0000)]
Reapply r236854 and fixed r236867.

Makes emacs show a different message when clang-format encountered a
syntax error.

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

9 years agoPrune trailing LF.
NAKAMURA Takumi [Sat, 9 May 2015 21:10:13 +0000 (21:10 +0000)]
Prune trailing LF.

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

9 years agoRevert r236879, "Do not emit thunks with available_externally linkage in comdats"
NAKAMURA Takumi [Sat, 9 May 2015 21:10:07 +0000 (21:10 +0000)]
Revert r236879, "Do not emit thunks with available_externally linkage in comdats"

It broke pecoff, at least i686-cygwin.

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

9 years agoFactor out Hexagon code to build args.
Ikhlas Ajbar [Sat, 9 May 2015 02:13:25 +0000 (02:13 +0000)]
Factor out Hexagon code to build args.

This patch factor out the code in hexagon::Link::ConstructJob to be reused
in other functions. No functionality change intended.

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

9 years agoRevert "Make emacs show when clang-format encountered a syntax error."
Tobias Grosser [Fri, 8 May 2015 21:34:09 +0000 (21:34 +0000)]
Revert "Make emacs show when clang-format encountered a syntax error."

This reverts commit 236854, which caused clang-format to always print
'{ "IncompleteFormat": false }' at the top of an incompletely formatted file.
This output causes problems e.g. in Polly's automatic formatting checks. Daniel
tried to fix this in 236867, but this fix had to be reverted due to buildbot
failures. I revert this change as well for now as it is Friday night and
unlikely to be fixed immediately.

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

9 years agoUsing ARMTargetParser in Clang
Renato Golin [Fri, 8 May 2015 21:04:50 +0000 (21:04 +0000)]
Using ARMTargetParser in Clang

This is a starting point for using the TargetParser in Clang, in a simple
enough part of the code that can be used without disrupting the crazy
platform support that we need to be compatible with other toolchains.

Also adding a few FIXME on obvious places that need replacing, but those
cases will indeed break a few of the platform assumptions, as arch/cpu names
change multiple times in the driver.

Finally, I'm changing the "neon-vfpv3" behaviour to match standard NEON, since
-mfpu=neon implies vfpv3 by default in both Clang and LLVM. That option
string is still supported as an alias to "neon".

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

9 years agoFix BackendConsumer::EmitOptimizationMessage()
Diego Novillo [Fri, 8 May 2015 20:59:56 +0000 (20:59 +0000)]
Fix BackendConsumer::EmitOptimizationMessage()

Patch from Geoff Berry <gberry@codeaurora.org>

Fix BackendConsumer::EmitOptimizationMessage() to check if the
DiagnosticInfoOptimizationBase object has a valid location before
calling getLocation() to avoid dereferencing a null pointer inside
getLocation() when no debug info is present.

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

9 years agoAdd the test case from PR 14044 to ensure it doesn't regress.
Kaelyn Takata [Fri, 8 May 2015 17:39:48 +0000 (17:39 +0000)]
Add the test case from PR 14044 to ensure it doesn't regress.

The test started working at some point, presumably fixed through the
delayed typo correction work.

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

9 years agoRevert "clang-format: Only output IncompleteFormat if -cursor is given."
Renato Golin [Fri, 8 May 2015 17:05:24 +0000 (17:05 +0000)]
Revert "clang-format: Only output IncompleteFormat if -cursor is given."

This reverts commit r236867, as it was breaking multiple buildbots. Daniel
will look into it later.

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

9 years agoDo not emit thunks with available_externally linkage in comdats
Derek Schuff [Fri, 8 May 2015 16:47:21 +0000 (16:47 +0000)]
Do not emit thunks with available_externally linkage in comdats

Functions with available_externally linkage will not be emitted to object
files (they will just be undefined symbols), so it does not make sense to
put them in comdats.

Creates a second overload of maybeSetTrivialComdat that uses the GlobalObject
instead of the Decl, and uses that in several places that had the faulty
logic.

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

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

9 years agoRevert "Allow case-insensitive values for -mcpu for ARM and AArch64"
Renato Golin [Fri, 8 May 2015 15:44:36 +0000 (15:44 +0000)]
Revert "Allow case-insensitive values for -mcpu for ARM and AArch64"

This reverts commit r236859, as it broke multiple builds. I'll investigate
and reapply when safe.

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

9 years agoclang-format: Only output IncompleteFormat if -cursor is given.
Daniel Jasper [Fri, 8 May 2015 15:36:30 +0000 (15:36 +0000)]
clang-format: Only output IncompleteFormat if -cursor is given.

This is only for editor integrations.

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

9 years agoAllow case-insensitive values for -mcpu for ARM and AArch64
Renato Golin [Fri, 8 May 2015 14:50:32 +0000 (14:50 +0000)]
Allow case-insensitive values for -mcpu for ARM and AArch64

GCC allows case-insensitive values for -mcpu, -march and -mtune options.
This patch implements the same behaviour for the -mcpu option.

Patch by Gabor Ballabas.

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

9 years agoMake emacs show when clang-format encountered a syntax error.
Manuel Klimek [Fri, 8 May 2015 13:59:15 +0000 (13:59 +0000)]
Make emacs show when clang-format encountered a syntax error.

Propagate the 'incomplete-format' state back through clang-format's command
line interace and adapt the emacs integration to show a better result.

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

9 years agoclang-format: Several improvements around formatting braced lists.
Daniel Jasper [Fri, 8 May 2015 13:51:14 +0000 (13:51 +0000)]
clang-format: Several improvements around formatting braced lists.

In particular:
* If the difference between the longest and shortest element, we copped
  out of column format completely. Now, we instead allow to arrange
  these in a single column, essentially enforcing a one-per-line format.
* Allow column layout even if there are braced lists. Especially, if
  there are many short lists, this can be beneficial. The bad case,
  where there is a long nested init list is usually caught as we now
  limit the length difference of the longest and shortest element.

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

9 years agoFix for bug 23429.
Nemanja Ivanovic [Fri, 8 May 2015 13:07:48 +0000 (13:07 +0000)]
Fix for bug 23429.

The macros for gcc atomic compare and swaps are defined for Power8 CPU's since
the functionality is provided in the back end.

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

9 years ago[ARM] Give an error on invalid -march values
John Brawn [Fri, 8 May 2015 12:52:18 +0000 (12:52 +0000)]
[ARM] Give an error on invalid -march values

llvm::Triple::getARMCPUForArch now returns nullptr for invalid -march
values, instead of silently translating it to arm7tdmi. Use this to
give an error message, which is consistent with how gcc behaves.

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

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

9 years ago[OPENMP] Fixed atomic construct with non-integer expressions.
Alexey Bataev [Fri, 8 May 2015 11:47:16 +0000 (11:47 +0000)]
[OPENMP] Fixed atomic construct with non-integer expressions.
Do not emit 'atomicrmw' instruction for simple atomic constructs with non-integer expressions.

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

9 years ago[OPENMP] Code cleanup for capturing of variables in OpenMP regions.
Alexey Bataev [Fri, 8 May 2015 10:41:21 +0000 (10:41 +0000)]
[OPENMP] Code cleanup for capturing of variables in OpenMP regions.

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

9 years agoclang-format: [JS] Avoid bad line-warp around "function".
Daniel Jasper [Fri, 8 May 2015 08:38:52 +0000 (08:38 +0000)]
clang-format: [JS] Avoid bad line-warp around "function".

Before:
  someLooooooooongFunction(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, function(
                                              aaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {
        // code
      });

After:
  someLooooooooongFunction(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      function(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {
        // code
      });

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

9 years agoclang-format: [JS] Fix regex literal detection.
Daniel Jasper [Fri, 8 May 2015 07:55:13 +0000 (07:55 +0000)]
clang-format: [JS] Fix regex literal detection.

Before:
  var regex = /= / ;

After:
  var regex = /=/;

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

9 years agoRevert "Fix path separator issue on Windows."
Nikola Smiljanic [Fri, 8 May 2015 06:02:37 +0000 (06:02 +0000)]
Revert "Fix path separator issue on Windows."

This reverts commit 9242ff16b0460b488691fd70b42a2bf81a531e3a.

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

9 years agoFix path separator issue on Windows.
Nikola Smiljanic [Fri, 8 May 2015 03:26:15 +0000 (03:26 +0000)]
Fix path separator issue on Windows.

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

9 years agoUpdate docs for SanitizerCoverage.
Alexey Samsonov [Thu, 7 May 2015 23:04:19 +0000 (23:04 +0000)]
Update docs for SanitizerCoverage.

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

9 years ago[SanitizerCoverage] Implement user-friendly -fsanitize-coverage= flags.
Alexey Samsonov [Thu, 7 May 2015 22:34:06 +0000 (22:34 +0000)]
[SanitizerCoverage] Implement user-friendly -fsanitize-coverage= flags.

Summary:
Possible coverage levels are:
  * -fsanitize-coverage=func - function-level coverage
  * -fsanitize-coverage=bb - basic-block-level coverage
  * -fsanitize-coverage=edge - edge-level coverage

Extra features are:
  * -fsanitize-coverage=indirect-calls - coverage for indirect calls
  * -fsanitize-coverage=trace-bb - tracing for basic blocks
  * -fsanitize-coverage=trace-cmp - tracing for cmp instructions
  * -fsanitize-coverage=8bit-counters - frequency counters

Levels and features can be combined in comma-separated list, and
can be disabled by subsequent -fno-sanitize-coverage= flags, e.g.:
  -fsanitize-coverage=bb,trace-bb,8bit-counters -fno-sanitize-coverage=trace-bb
is equivalient to:
  -fsanitize-coverage=bb,8bit-counters

Original semantics of -fsanitize-coverage flag is preserved:
  * -fsanitize-coverage=0 disables the coverage
  * -fsanitize-coverage=1 is a synonym for -fsanitize-coverage=func
  * -fsanitize-coverage=2 is a synonym for -fsanitize-coverage=bb
  * -fsanitize-coverage=3 is a synonym for -fsanitize-coverage=edge
  * -fsanitize-coverage=4 is a synonym for -fsanitize-coverage=edge,indirect-calls

Driver tries to diagnose invalid flag usage, in particular:
  * At most one level (func,bb,edge) must be specified.
  * "trace-bb" and "8bit-counters" features require some level to be specified.

See test case for more examples.

Test Plan: regression test suite

Reviewers: kcc

Subscribers: cfe-commits

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

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

9 years ago[MS ABI] Make sure we number thread_local statics seperately
David Majnemer [Thu, 7 May 2015 21:19:06 +0000 (21:19 +0000)]
[MS ABI] Make sure we number thread_local statics seperately

The thread_local variables need their own numbers, they can't share with
the other static local variables.

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

9 years agoFixed test failure on machines with 32-bit size_t.
Artem Belevich [Thu, 7 May 2015 21:06:03 +0000 (21:06 +0000)]
Fixed test failure on machines with 32-bit size_t.

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

9 years ago[cuda] Include GPU binary into host object file and generate init/deinit code.
Artem Belevich [Thu, 7 May 2015 19:34:16 +0000 (19:34 +0000)]
[cuda] Include GPU binary into host object file and generate init/deinit code.

- added -fcuda-include-gpubinary option to incorporate results of
  device-side compilation into host-side one.
- generate code to register GPU binaries and associated kernels
  with CUDA runtime and clean-up on exit.
- added test case for init/deinit code generation.

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

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

9 years agoReplace the broken LambdaCapture::isInitCapture API.
James Dennett [Thu, 7 May 2015 18:48:18 +0000 (18:48 +0000)]
Replace the broken LambdaCapture::isInitCapture API.

A LambdaCapture does not have sufficient information
to correctly determine whether it is an init-capture or not.
Doing so requires knowledge held in the LambdaExpr itself.

It the case of a nested capture of an init-capture it is not
sufficient to check (as LambdaCapture::isInitCapture did)
whether the associated VarDecl was from an init-capture.

This patch moves isInitCapture to LambdaExpr and updates
Capture->isInitCapture() to Lambda->isInitCapture(Capture).

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

9 years ago[SanitizerCoverage] Give clang-cc1 the power to precisly specify needed sanitizier...
Alexey Samsonov [Thu, 7 May 2015 18:31:29 +0000 (18:31 +0000)]
[SanitizerCoverage] Give clang-cc1 the power to precisly specify needed sanitizier coverage mode.

Summary:
The next step is to add user-friendly control over these options
to driver via -fsanitize-coverage= option.

Test Plan: regression test suite

Reviewers: kcc

Subscribers: cfe-commits

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

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

9 years ago[opaque pointer type] Correctly pass the pointee type when creating a GEP constant...
David Blaikie [Thu, 7 May 2015 17:27:56 +0000 (17:27 +0000)]
[opaque pointer type] Correctly pass the pointee type when creating a GEP constant expression

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

9 years agoUpdate the subversion link to http://subversion.apache.org/packages.html.
Yaron Keren [Thu, 7 May 2015 15:15:16 +0000 (15:15 +0000)]
Update the subversion link to http://subversion.apache.org/packages.html.

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

9 years agoFix clang getting started guide to require VC2013 instead of VS2012.
Yaron Keren [Thu, 7 May 2015 15:12:30 +0000 (15:12 +0000)]
Fix clang getting started guide to require VC2013 instead of VS2012.

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

9 years agoAdding new AST matcher: gnuNullExpr
Szabolcs Sipos [Thu, 7 May 2015 14:24:22 +0000 (14:24 +0000)]
Adding new AST matcher: gnuNullExpr

It matches GNU __null expression.

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

9 years agoclang-format: Improve r236597, Properly indent method calls without inputs.
Daniel Jasper [Thu, 7 May 2015 14:19:59 +0000 (14:19 +0000)]
clang-format: Improve r236597, Properly indent method calls without inputs.

Before:
  [aaaaaaaaaaaa(aaaaaa)
          aaaaaaaaaaaaaaaaaaaa];

After:
  [aaaaaaaaaaaa(aaaaaa)
      aaaaaaaaaaaaaaaaaaaa];

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

9 years agoImplements a way to retrieve information about whether some lines were not formatted...
Manuel Klimek [Thu, 7 May 2015 12:26:30 +0000 (12:26 +0000)]
Implements a way to retrieve information about whether some lines were not formatted due to syntax errors.

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

9 years agoAVX-512: FP compare intrinsics - changed type of CC parameter from i8 to i32 accordin...
Elena Demikhovsky [Thu, 7 May 2015 11:26:36 +0000 (11:26 +0000)]
AVX-512: FP compare intrinsics - changed type of CC parameter from i8 to i32 according to the spec.
Added FP compare intrinsics for SKX.

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

9 years agoMark clang/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp as REQUIRES:asserts...
NAKAMURA Takumi [Thu, 7 May 2015 10:11:27 +0000 (10:11 +0000)]
Mark clang/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp as REQUIRES:asserts. It relies on label names.

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

9 years agoFix some glitches in the MSVCCompatibility document
David Majnemer [Thu, 7 May 2015 07:48:16 +0000 (07:48 +0000)]
Fix some glitches in the MSVCCompatibility document

- Fix the formatting of the "Exceptions and SEH" section.
- Make the "Complete" text for "Thread-safe initialization of local
  statics" green.

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

9 years agoFix for http://llvm.org/PR23392: magick/feature.c from ImageMagick-6.9.1-2 ICEs.
Alexey Bataev [Thu, 7 May 2015 06:28:46 +0000 (06:28 +0000)]
Fix for http://llvm.org/PR23392: magick/feature.c from ImageMagick-6.9.1-2 ICEs.
Fix for codegen of static variables declared inside of captured statements. Captured statements are actually a transparent DeclContexts, so we have to skip them when trying to get a mangled name for statics.
Differential Revision: http://reviews.llvm.org/D9522

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

9 years agoNote that we support 'throw' for the MS ABI.
David Majnemer [Thu, 7 May 2015 06:16:03 +0000 (06:16 +0000)]
Note that we support 'throw' for the MS ABI.

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

9 years ago[MS ABI] Implement thread-safe initialization using the MSVC 2015 ABI
David Majnemer [Thu, 7 May 2015 06:15:46 +0000 (06:15 +0000)]
[MS ABI] Implement thread-safe initialization using the MSVC 2015 ABI

The MSVC 2015 ABI utilizes a rather straightforward adaptation of the
algorithm found in the appendix of N2382.  While we are here, implement
support for emitting cleanups if an exception is thrown while we are
intitializing a static local variable.

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

9 years ago[OPENMP] Generate !llvm.mem.loop_parallel_access metadata for loops with dynamic...
Alexey Bataev [Thu, 7 May 2015 04:25:17 +0000 (04:25 +0000)]
[OPENMP] Generate !llvm.mem.loop_parallel_access metadata for loops with dynamic/guided scheduling.

Inner bodies of OpenMP worksharing loop-based constructs with dynamic or guided scheduling are allowed to be marked with !llvm.mem.parallel_loop_access metadata for better optimization. Worksharing constructs with static scheduling cannot be marked this way (according to OpenMP standard "A data dependence between the same logical iterations in two such loops is guaranteed").
Constructs with auto and runtime scheduling are also not marked because automatically chosen scheduling may be static also.
Differential Revision: http://reviews.llvm.org/D9518

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

9 years ago[OPENMP] Fixed test for reduction on 'sections' directive.
Alexey Bataev [Thu, 7 May 2015 04:09:41 +0000 (04:09 +0000)]
[OPENMP] Fixed test for reduction on 'sections' directive.

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

9 years agofix clang-fuzzer and clang-format-fuzzer
Kostya Serebryany [Thu, 7 May 2015 04:01:39 +0000 (04:01 +0000)]
fix clang-fuzzer and clang-format-fuzzer

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

9 years ago[modules] Suport for merging a parsed enum definition into an existing imported but...
Richard Smith [Thu, 7 May 2015 03:54:19 +0000 (03:54 +0000)]
[modules] Suport for merging a parsed enum definition into an existing imported but not visible definition.

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

9 years ago[OPENMP] Fixed codegen for 'reduction' clause.
Alexey Bataev [Thu, 7 May 2015 03:54:03 +0000 (03:54 +0000)]
[OPENMP] Fixed codegen for 'reduction' clause.

Fixed codegen for reduction operations min, max, && and ||. Codegen for them is quite similar and I was confused by this similarity.
Also added a call to kmpc_end_reduce() in atomic part of reduction codegen (call to kmpc_end_reduce_nowait() is not required).
Differential Revision: http://reviews.llvm.org/D9513

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

9 years agoWhen performing delayed typo correction in a for-range loop's variable
Kaelyn Takata [Thu, 7 May 2015 00:11:02 +0000 (00:11 +0000)]
When performing delayed typo correction in a for-range loop's variable
declaration, ensure the loop variable is properly marked as invalid when
it is an "auto" variable.

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

9 years agoFix public-private.modulemap test case to clear the cache on every run.
Peter Collingbourne [Wed, 6 May 2015 22:31:13 +0000 (22:31 +0000)]
Fix public-private.modulemap test case to clear the cache on every run.

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

9 years agoCGCXX: Use cast in getAddrOfCXXStructor()
Duncan P. N. Exon Smith [Wed, 6 May 2015 22:18:39 +0000 (22:18 +0000)]
CGCXX: Use cast in getAddrOfCXXStructor()

All callers should be passing `CXXConstructorDecl` or
`CXXDestructorDecl` here, so use `cast<>` instead of `dyn_cast<>` when
setting up the `GlobalDecl`.

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

9 years ago[docs] Update SanitizerCoverage docs.
Sergey Matveev [Wed, 6 May 2015 21:09:00 +0000 (21:09 +0000)]
[docs] Update SanitizerCoverage docs.

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

9 years agoclang-format: Don't indent 'signals' as access specifier if it isn't one
Daniel Jasper [Wed, 6 May 2015 19:21:23 +0000 (19:21 +0000)]
clang-format: Don't indent 'signals' as access specifier if it isn't one

Before:
  {
  signals.set(0);
  }

After:
  {
    signals.set(0);
  }

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

9 years ago[driver] Cosmetic change to use Input instead of Inputs[0].
Artem Belevich [Wed, 6 May 2015 18:20:23 +0000 (18:20 +0000)]
[driver] Cosmetic change to use Input instead of Inputs[0].

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

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

9 years ago[AArch64] Advertise that the __sync_*_compare_and_swap_1/2/4/8 builtins work
Reid Kleckner [Wed, 6 May 2015 15:31:46 +0000 (15:31 +0000)]
[AArch64] Advertise that the __sync_*_compare_and_swap_1/2/4/8 builtins work

Fixes PR23428, where std::thread in libstdc++ would go haywire without
these defines.

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

9 years agoclang-format: Merge labels and subsequent semicolons.
Daniel Jasper [Wed, 6 May 2015 15:19:47 +0000 (15:19 +0000)]
clang-format: Merge labels and subsequent semicolons.

E.g.:

  default:;

This can be used to get around restrictions as to what can follow a
label. It fixes llvm.org/PR19648.

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

9 years agoclang-format: Allow ternary expressions inside template parameters if
Daniel Jasper [Wed, 6 May 2015 14:53:50 +0000 (14:53 +0000)]
clang-format: Allow ternary expressions inside template parameters if
the template parameters aren't inside an expression context.

This fixes llvm.org/PR23270.

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

9 years agoclang-format: Consider operator precedence as penalty when breaking
Daniel Jasper [Wed, 6 May 2015 14:23:38 +0000 (14:23 +0000)]
clang-format: Consider operator precedence as penalty when breaking
before operators.

This fixes llvm.org/23382.

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

9 years agoclang-format: Accept slightly more record declarations.
Daniel Jasper [Wed, 6 May 2015 14:03:02 +0000 (14:03 +0000)]
clang-format: Accept slightly more record declarations.

This fixes llvm.org/PR23397.

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

9 years agoclang-format: Fix bad wrapping of ObjC method exprs.
Daniel Jasper [Wed, 6 May 2015 13:13:03 +0000 (13:13 +0000)]
clang-format: Fix bad wrapping of ObjC method exprs.

Before:
  [aaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa:
      aaaaaaaa aaa:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa];

After:
  [aaaaaaaaaaaaaaaaaaaaaaaaa
      aaaaaaaaaaaaaaaaa:aaaaaaaa
                    aaa:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa];

Note that this might now violate the column limit and we probably need an
alternative way of indenting these then. However, that is still strictly better
than the messy formatting that clang-format did before.

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

9 years agoclang-format: Properly indent method calls without inputs.
Daniel Jasper [Wed, 6 May 2015 12:48:06 +0000 (12:48 +0000)]
clang-format: Properly indent method calls without inputs.

Before:
  [aaaaaaaaaaa
          aaaaaaa];

After:
  [aaaaaaaaaaa
      aaaaaaa];

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

9 years agoRemove deprecated version of reformat.
Manuel Klimek [Wed, 6 May 2015 12:12:22 +0000 (12:12 +0000)]
Remove deprecated version of reformat.

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

9 years agoclang-format: Don't allow -i when reading from stdin.
Daniel Jasper [Wed, 6 May 2015 11:56:54 +0000 (11:56 +0000)]
clang-format: Don't allow -i when reading from stdin.

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

9 years agoRemove all computation of structural errors in clang-format's line parser.
Manuel Klimek [Wed, 6 May 2015 11:56:29 +0000 (11:56 +0000)]
Remove all computation of structural errors in clang-format's line parser.

We were already ignoring those already.

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

9 years agoclang-format: Fix another assertion discovered by the fuzzer.
Daniel Jasper [Wed, 6 May 2015 11:16:43 +0000 (11:16 +0000)]
clang-format: Fix another assertion discovered by the fuzzer.

In the process, fix an old todo that I don't really know how to write
tests for. The problem is that Clang's lexer creates very strange token
sequences for these. However, the new approach seems generally better
and easier to read so I am submitting it nonetheless.

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

9 years agoclang-format: Prevent assertion discovered by fuzzer.
Daniel Jasper [Wed, 6 May 2015 08:58:57 +0000 (08:58 +0000)]
clang-format: Prevent assertion discovered by fuzzer.

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

9 years agoclang-format: Prevent exponential runtime in token annotator.
Daniel Jasper [Wed, 6 May 2015 08:38:24 +0000 (08:38 +0000)]
clang-format: Prevent exponential runtime in token annotator.

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

9 years ago[OPENMP] Fixed messages about predetermined DSA for loop control variables.
Alexey Bataev [Wed, 6 May 2015 07:25:08 +0000 (07:25 +0000)]
[OPENMP] Fixed messages about predetermined DSA for loop control variables.

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

9 years agoclang-format: Fix bug in multiline comment wrapping.
Daniel Jasper [Wed, 6 May 2015 07:17:22 +0000 (07:17 +0000)]
clang-format: Fix bug in multiline comment wrapping.

Splitting:
  /**
   * multiline block comment
   *
   */

Before:
  /**
   * multiline block
   *comment
   *
   */

After:
  /**
   * multiline block
   * comment
   *
   */

The reason was that the empty line inside the comment (with just the "*") was
confusing the comment breaking logic.

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

9 years ago[OPENMP] Fix for http://llvm.org/PR23387: clang fails to compile magick/attribute.c
Alexey Bataev [Wed, 6 May 2015 06:34:55 +0000 (06:34 +0000)]
[OPENMP] Fix for http://llvm.org/PR23387: clang fails to compile magick/attribute.c

Allow to use variables with 'register' storage class as loop control variables in OpenMP loop based constructs.

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

9 years agoRevert "[analyzer] scan-build: support spaces in compiler path and arguments."
Ahmed Bougacha [Wed, 6 May 2015 02:08:27 +0000 (02:08 +0000)]
Revert "[analyzer] scan-build: support spaces in compiler path and arguments."

This reverts commit r236423 and its followup r236533, as indiscriminate
quoting makes for too much quoting (and clang doesn't like both '"-c"'
and -D"FOO=bar").

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

9 years agoInstrProf: Don't start or end coverage regions inside of system macros
Justin Bogner [Tue, 5 May 2015 21:46:14 +0000 (21:46 +0000)]
InstrProf: Don't start or end coverage regions inside of system macros

It doesn't make much sense to try to show coverage inside system
macros, and source locations in builtins confuses the coverage
mapping. Just avoid doing this.

Fixes an assert that fired when a __block storage specifier starts a
region.

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

9 years agoUpdate testcase to match r236539
David Majnemer [Tue, 5 May 2015 20:34:29 +0000 (20:34 +0000)]
Update testcase to match r236539

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

9 years ago[analyzer] This eliminates regression caused by r236423.
Anton Yartsev [Tue, 5 May 2015 19:43:37 +0000 (19:43 +0000)]
[analyzer] This eliminates regression caused by r236423.

Wrap an argument with quotes only if it has spaces.

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

9 years ago[SystemZ] Add support for z13 low-level vector builtins
Ulrich Weigand [Tue, 5 May 2015 19:36:42 +0000 (19:36 +0000)]
[SystemZ] Add support for z13 low-level vector builtins

This adds low-level builtins to allow access to all of the z13 vector
instructions.  Note that instructions whose semantics can be described
by standard C (including clang extensions) do not get any builtins.

For each instructions whose semantics *cannot* (fully) be described, we
define a builtin named __builtin_s390_<insn> that directly maps to this
instruction.  These are intended to be compatible with GCC.

For instructions that also set the condition code, the builtin will take
an extra argument of type "int *" at the end.  The integer pointed to by
this argument will be set to the post-instruction CC value.

For many instructions, the low-level builtin is mapped to the corresponding
LLVM IR intrinsic.  However, a number of instructions can be represented
in standard LLVM IR without requiring use of a target intrinsic.

Some instructions require immediate integer operands within a certain
range.  Those are verified at the Sema level.

Based on a patch by Richard Sandiford.

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

9 years ago[SystemZ] Add support for z13 and its vector facility
Ulrich Weigand [Tue, 5 May 2015 19:35:52 +0000 (19:35 +0000)]
[SystemZ] Add support for z13 and its vector facility

This patch adds support for the z13 architecture type.  For compatibility
with GCC, a pair of options -mvx / -mno-vx can be used to selectively
enable/disable use of the vector facility.

When the vector facility is present, we default to the new vector ABI.
This is characterized by two major differences:
- Vector types are passed/returned in vector registers
  (except for unnamed arguments of a variable-argument list function).
- Vector types are at most 8-byte aligned.

The reason for the choice of 8-byte vector alignment is that the hardware
is able to efficiently load vectors at 8-byte alignment, and the ABI only
guarantees 8-byte alignment of the stack pointer, so requiring any higher
alignment for vectors would require dynamic stack re-alignment code.

However, for compatibility with old code that may use vector types, when
*not* using the vector facility, the old alignment rules (vector types
are naturally aligned) remain in use.

These alignment rules are not only implemented at the C language level,
but also at the LLVM IR level.  This is done by selecting a different
DataLayout string depending on whether the vector ABI is in effect or not.

Based on a patch by Richard Sandiford.

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

9 years agoAllow TransformTypos to ignore corrections to a specified VarDecl.
Kaelyn Takata [Tue, 5 May 2015 19:17:03 +0000 (19:17 +0000)]
Allow TransformTypos to ignore corrections to a specified VarDecl.

This is needed to prevent a TypoExpr from being corrected to a variable
when the TypoExpr is a subexpression of that variable's initializer.

Also exclude more keywords from the correction candidate pool when the
subsequent token is .* or ->* since keywords like "new" or "return"
aren't valid on the left side of those operators.

Fixes PR23140.

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

9 years ago[OPENMP] Allow use of macros in OpenMP directives/clauses.
Alexey Bataev [Tue, 5 May 2015 09:53:25 +0000 (09:53 +0000)]
[OPENMP] Allow use of macros in OpenMP directives/clauses.

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

9 years ago[OPENMP] Fixed incorrect work with cleanups, NFC.
Alexey Bataev [Tue, 5 May 2015 09:24:37 +0000 (09:24 +0000)]
[OPENMP] Fixed incorrect work with cleanups, NFC.

Destructors are never called for cleanups, so we can't use SmallVector as a member.
Differential Revision: http://reviews.llvm.org/D9399

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