]> granicus.if.org Git - clang/log
clang
9 years ago[c++1z] Remove terse range-based for loops; they've been removed from
Richard Smith [Thu, 27 Nov 2014 01:54:27 +0000 (01:54 +0000)]
[c++1z] Remove terse range-based for loops; they've been removed from
consideration for C++17 for now. Update C++ status page to match.

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

9 years agoWhen checking for uninitialized values, do not confuse "std::move" with every
Richard Trieu [Thu, 27 Nov 2014 01:29:32 +0000 (01:29 +0000)]
When checking for uninitialized values, do not confuse "std::move" with every
other function named "move".

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

9 years agoOpenCL: fix test for lack of names in release builds
Tim Northover [Wed, 26 Nov 2014 22:33:04 +0000 (22:33 +0000)]
OpenCL: fix test for lack of names in release builds

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

9 years ago[analyzer] Indented code within the DisplayHelp sub.
Anton Yartsev [Wed, 26 Nov 2014 21:53:39 +0000 (21:53 +0000)]
[analyzer] Indented code within the DisplayHelp sub.

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

9 years agoFix buildbot failure on LLP64 platforms like MSVC x86_64.
Richard Smith [Wed, 26 Nov 2014 19:37:39 +0000 (19:37 +0000)]
Fix buildbot failure on LLP64 platforms like MSVC x86_64.

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

9 years agoclang-format: [Java] Don't line-wrap package declarations.
Daniel Jasper [Wed, 26 Nov 2014 18:03:42 +0000 (18:03 +0000)]
clang-format: [Java] Don't line-wrap package declarations.

This fixes llvm.org/PR21677.

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

9 years agoclang-format: Tweak -style=Chromium for Java files.
Nico Weber [Wed, 26 Nov 2014 16:43:18 +0000 (16:43 +0000)]
clang-format: Tweak -style=Chromium for Java files.

For Java, don't do any of the deviations from Google Style that Chromium style
does for C++.

Chromium's Java follows Android Java style [1], which is roughly Google Java
style with an indent of 4 and a continuation indent of 8.

1: https://source.android.com/source/code-style.html

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

9 years agoAdding an explicit triple to this test to get it to pass all build bots.
Aaron Ballman [Wed, 26 Nov 2014 16:17:20 +0000 (16:17 +0000)]
Adding an explicit triple to this test to get it to pass all build bots.

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

9 years ago[OpenCL] Implemented restrictions for pointer conversions specified in OpenCL v2.0.
Anastasia Stulova [Wed, 26 Nov 2014 15:36:41 +0000 (15:36 +0000)]
[OpenCL] Implemented restrictions for pointer conversions specified in OpenCL v2.0.

OpenCL v2.0 s6.5.5 restricts conversion of pointers to different address spaces:
- the named address spaces (__global, __local, and __private) => __generic - implicitly converted;
- __generic => named - with an explicit cast;
- named <=> named - disallowed;
- __constant <=> any other - disallowed.

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

9 years ago[OpenCL] Generic address space parsing and diagnostics test (forgotten previously)
Anastasia Stulova [Wed, 26 Nov 2014 14:14:05 +0000 (14:14 +0000)]
[OpenCL] Generic address space parsing and diagnostics test (forgotten previously)

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

9 years ago[OpenCL] Generic address space has been added in OpenCL v2.0.
Anastasia Stulova [Wed, 26 Nov 2014 14:10:06 +0000 (14:10 +0000)]
[OpenCL] Generic address space has been added in OpenCL v2.0.

To support it in the frontend, the following has been added:
- generic address space type attribute;
- documentation for the OpenCL address space attributes;
- parsing of __generic(generic) keyword;
- test code for the parser and diagnostics.

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

9 years agoclang-format: [Java] Improve formatting of throws declarations.
Daniel Jasper [Wed, 26 Nov 2014 12:31:19 +0000 (12:31 +0000)]
clang-format: [Java] Improve formatting of throws declarations.

Before:
  public void doSoooooooooo() throws LoooooooooongException,
      LooooooooooongException {}

After:
  public void doSoooooooooo()
      throws LoooooooooongException, LooooooooooongException {}

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

9 years agoclang-format: [Java] Improve cast detection.
Daniel Jasper [Wed, 26 Nov 2014 12:23:10 +0000 (12:23 +0000)]
clang-format: [Java] Improve cast detection.

Before:
  a[b >> 1] = (byte)(c() << 4);

After:
  a[b >> 1] = (byte) (c() << 4);

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

9 years agoclang-format: [Java] Fix breaking after annotations.
Daniel Jasper [Wed, 26 Nov 2014 11:20:43 +0000 (11:20 +0000)]
clang-format: [Java] Fix breaking after annotations.

Before:
  @Annotation1 // comment
  @Annotation2 class C {}

After:
  @Annotation1 // comment
  @Annotation2
  class C {}

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

9 years agoclang-format: Add SFS_Empty to only empty functions on a single line.
Daniel Jasper [Wed, 26 Nov 2014 10:43:58 +0000 (10:43 +0000)]
clang-format: Add SFS_Empty to only empty functions on a single line.

Activated for and tested by Google's Java style.

This fixes llvm.org/PR21667.

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

9 years agoclang-format: [Java] Support Foo.class;
Daniel Jasper [Wed, 26 Nov 2014 08:17:08 +0000 (08:17 +0000)]
clang-format: [Java] Support Foo.class;

Before:
  SomeClass.
  class.getName();

After:
  SomeClass.class.getName();

This fixes llvm.org/PR21665.

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

9 years ago[c++1z] Most of N4268 (allow constant evaluation for non-type template arguments).
Richard Smith [Wed, 26 Nov 2014 03:26:53 +0000 (03:26 +0000)]
[c++1z] Most of N4268 (allow constant evaluation for non-type template arguments).

We don't yet support pointer-to-member template arguments that have undergone
pointer-to-member conversions, mostly because we don't have a mangling for them yet.

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

9 years agoCodeGen: Fix emission of __atomic_compare_exchange
David Majnemer [Tue, 25 Nov 2014 23:44:32 +0000 (23:44 +0000)]
CodeGen: Fix emission of __atomic_compare_exchange

We (wrongly) discarded the return value of the call.

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

9 years agoEnsure that any TypoExprs in the arguments to bultins with custom type
Kaelyn Takata [Tue, 25 Nov 2014 23:04:09 +0000 (23:04 +0000)]
Ensure that any TypoExprs in the arguments to bultins with custom type
checking are handled before the custom type checking is performed.

Fixes PR21669.

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

9 years agoTry to fix a ppc64 bot. What is this 'signext' stuff anyway?
Paul Robinson [Tue, 25 Nov 2014 17:28:54 +0000 (17:28 +0000)]
Try to fix a ppc64 bot.  What is this 'signext' stuff anyway?
No wonder most people use specific triples.

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

9 years agoRe-apply r222646 (was reverted in r222667). Adding 4 ASTMatchers: typedefDecl, isInMa...
Manuel Klimek [Tue, 25 Nov 2014 17:01:06 +0000 (17:01 +0000)]
Re-apply r222646 (was reverted in r222667). Adding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName

Change to original: ifndef out tests in Windows due to /-separated
paths.

Summary:
Often one is only interested in matches within the main-file or matches
that are not within a system-header, for which this patch adds
isInMainFile and isInSystemFile. They take no arguments and narrow down
the matches.

The isInFileMatchingName is mainly thought for interactive
clang-query-sessions, to make a matcher more specific without restarting
the session with the files you are interested in for that moment. It
takes a string that will be used as regular-expression to match the
filename of where the matched node is expanded.

Patch by Hendrik von Prince.

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

9 years agoUpdate Clang tests that run the LLVM optimizer to reflect the changed
Chandler Carruth [Tue, 25 Nov 2014 10:10:37 +0000 (10:10 +0000)]
Update Clang tests that run the LLVM optimizer to reflect the changed
canonicalization in r222748. No interesting functionality changed here.

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

9 years agoclang-format: Refactoring.
Daniel Jasper [Tue, 25 Nov 2014 10:05:17 +0000 (10:05 +0000)]
clang-format: Refactoring.

Re-apply r222638 and r222641 without variadic templates.

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

9 years agoAdd flag -f(no-)modules-implicit-maps.
Daniel Jasper [Tue, 25 Nov 2014 09:45:48 +0000 (09:45 +0000)]
Add flag -f(no-)modules-implicit-maps.

This suppresses the implicit search for files called 'module.modulemap' and
similar.

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

9 years agoAdd a missing override, caught by clang's inconsistent override warning.
Chandler Carruth [Tue, 25 Nov 2014 08:59:34 +0000 (08:59 +0000)]
Add a missing override, caught by clang's inconsistent override warning.

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

9 years ago[ARM] Define __ARM_FEATURE_DSP macro for CPUs that have DSP instructions
Sergey Dmitrouk [Tue, 25 Nov 2014 08:57:36 +0000 (08:57 +0000)]
[ARM] Define __ARM_FEATURE_DSP macro for CPUs that have DSP instructions

Summary:
This resolves [[ http://llvm.org/bugs/show_bug.cgi?id=17391 | PR17391 ]].

GCC's sources were used as a guide (couldn't find much information in ARM documentation).

Reviewers: doug.gregor, asl

Reviewed By: asl

Subscribers: asl, aemerson, cfe-commits

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

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

9 years agoMS ABI: Add CodeGen support for rethrowing MS C++ exceptions
David Majnemer [Tue, 25 Nov 2014 07:20:20 +0000 (07:20 +0000)]
MS ABI: Add CodeGen support for rethrowing MS C++ exceptions

Rethrowing exceptions in the MS model is very simple: just call
_CxxThrowException with nullptr for both arguments.

N.B.  They chose stdcall as the calling convention for x86 but cdecl for
all other platforms.

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

9 years agodocs: Update the MSVCCompatibility doc for changes to debug info
David Majnemer [Tue, 25 Nov 2014 06:59:35 +0000 (06:59 +0000)]
docs: Update the MSVCCompatibility doc for changes to debug info

The document should reflect that we now support emission for DWARF.

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

9 years agoCodeGen: further simplify assertion
Saleem Abdulrasool [Tue, 25 Nov 2014 03:49:50 +0000 (03:49 +0000)]
CodeGen: further simplify assertion

Use more of algorithm to simplify the assertion.  Pointed out by David Blakie!

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

9 years agoSee if this fixes Mips bot; ignore contents of parameter lists.
Paul Robinson [Mon, 24 Nov 2014 23:30:12 +0000 (23:30 +0000)]
See if this fixes Mips bot; ignore contents of parameter lists.

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

9 years agoRemove unnecessary environment switch
Reid Kleckner [Mon, 24 Nov 2014 22:05:42 +0000 (22:05 +0000)]
Remove unnecessary environment switch

All supported environments on x86 Windows return structs in EAX:EDX.
This removes code added in r204978 that had to get updated in r222680.
We should now have the same behavior we had before r204978.

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

9 years agoForce the correction of delayed typos in casts in non-C++ code.
Kaelyn Takata [Mon, 24 Nov 2014 21:46:59 +0000 (21:46 +0000)]
Force the correction of delayed typos in casts in non-C++ code.

Fixes PR21656, which is fallout from r222551 caused by an untested/missed
code path.

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

9 years agoFilter the toplevel matchers by kind.
Samuel Benzaquen [Mon, 24 Nov 2014 21:21:09 +0000 (21:21 +0000)]
Filter the toplevel matchers by kind.

Summary:
Filter the toplevel matchers by kind.
Decl and Stmt matchers are tied to a specific node kind and trying to
match incompatible nodes is a waste.
Precalculate a filtered list of matchers that have a chance of matching
the node and ignore the rest.
Speeds up our clang-tidy benchmark by ~10%

Reviewers: klimek

Subscribers: klimek, cfe-commits

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

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

9 years agotesting: make test use FileCheck
Tim Northover [Mon, 24 Nov 2014 21:03:34 +0000 (21:03 +0000)]
testing: make test use FileCheck

The "grep internal | count" was fragile when your source or remote paths could
contain the word "internal".

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

9 years agoCorrectly remove OptimizeForSize from functions marked OptimizeNone.
Paul Robinson [Mon, 24 Nov 2014 20:51:42 +0000 (20:51 +0000)]
Correctly remove OptimizeForSize from functions marked OptimizeNone.
This allows using __attribute__((optnone)) and the -Os/-Oz options.
Fixes PR21604.

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

9 years agoCodeGen: make i686-windows-itanium more similar to msvc
Saleem Abdulrasool [Mon, 24 Nov 2014 20:14:29 +0000 (20:14 +0000)]
CodeGen: make i686-windows-itanium more similar to msvc

The itanium environment follows the system calling convention for structures.
Pass small aggregates via registers.

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

9 years agoCodeGen: use a range-based for loop
Saleem Abdulrasool [Mon, 24 Nov 2014 20:14:26 +0000 (20:14 +0000)]
CodeGen: use a range-based for loop

Convert a debug assertion into a range-based loop form.  NFC.

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

9 years agoReverting r222646; the tests do not pass on Windows. Also reverts r222664, which...
Aaron Ballman [Mon, 24 Nov 2014 17:39:44 +0000 (17:39 +0000)]
Reverting r222646; the tests do not pass on Windows. Also reverts r222664, which was required for r222646 to compile with Visual Studio 2012.

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

9 years agoFix line endings
Nico Rieck [Mon, 24 Nov 2014 17:29:52 +0000 (17:29 +0000)]
Fix line endings

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

9 years agoFix crash when using __if_exists in C mode
Nico Rieck [Mon, 24 Nov 2014 17:29:35 +0000 (17:29 +0000)]
Fix crash when using __if_exists in C mode

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

9 years agoUnbreaking the MSVC 2012 build; however, these tests still fail on Windows.
Aaron Ballman [Mon, 24 Nov 2014 17:22:32 +0000 (17:22 +0000)]
Unbreaking the MSVC 2012 build; however, these tests still fail on Windows.

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

9 years agoReverting r222638; it broke the MSVC build bots because Visual Studio 2012 does not...
Aaron Ballman [Mon, 24 Nov 2014 15:42:34 +0000 (15:42 +0000)]
Reverting r222638; it broke the MSVC build bots because Visual Studio 2012 does not support variadic templates. Also reverting r222641 because it was relying on 222638.

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

9 years agoAdding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName
Manuel Klimek [Mon, 24 Nov 2014 09:10:56 +0000 (09:10 +0000)]
Adding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName

Summary:
Often one is only interested in matches within the main-file or matches
that are not within a system-header, for which this patch adds
isInMainFile and isInSystemFile. They take no arguments and narrow down
the matches.

The isInFileMatchingName is mainly thought for interactive
clang-query-sessions, to make a matcher more specific without restarting
the session with the files you are interested in for that moment. It
takes a string that will be used as regular-expression to match the
filename of where the matched node is expanded.

Patch by Hendrik von Prince.

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

9 years agoclang-format: Make short case labels work with #ifs
Daniel Jasper [Sun, 23 Nov 2014 21:45:03 +0000 (21:45 +0000)]
clang-format: Make short case labels work with #ifs

Before:
  switch (a) {
  #if FOO
  case 0: return 0; #endif
  }

After:
  switch (a) {
  #if FOO
  case 0: return 0;
  #endif
  }

This fixed llvm.org/PR21544.

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

9 years agoclang-format: [Java] Treat 'instanceof' like other binary operators.
Daniel Jasper [Sun, 23 Nov 2014 21:34:25 +0000 (21:34 +0000)]
clang-format: [Java] Treat 'instanceof' like other binary operators.

This fixes llvm.org/PR21436.

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

9 years agoclang-format: [Java] Space before array initializers.
Daniel Jasper [Sun, 23 Nov 2014 20:54:37 +0000 (20:54 +0000)]
clang-format: [Java] Space before array initializers.

Before:
  new int[]{1, 2, 3, 4};

After:
  new int[] {1, 2, 3, 4};

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

9 years agoclang-format: Improve ObjC blocks with return type.
Daniel Jasper [Sun, 23 Nov 2014 19:15:35 +0000 (19:15 +0000)]
clang-format: Improve ObjC blocks with return type.

Before:
  Block b = ^int * (A * a, B * b) {}

After:
  Block b = ^int *(A *a, B *b) {}

This fixed llvm.org/PR21619.

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

9 years agoclang-format: Refactoring.
Daniel Jasper [Sun, 23 Nov 2014 19:03:25 +0000 (19:03 +0000)]
clang-format: Refactoring.

Provide more overloads to simplify testing the type of a token. No
functional changes intended.

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

9 years agoclang-format: [JS] Support Closure's module statements.
Daniel Jasper [Sun, 23 Nov 2014 16:46:28 +0000 (16:46 +0000)]
clang-format: [JS] Support Closure's module statements.

These are like import statements and should not be line-wrapped. Minor
restructuring of the handling of other import statements.

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

9 years agoCodeGen: tweak struct ABI handling
Saleem Abdulrasool [Sun, 23 Nov 2014 02:16:24 +0000 (02:16 +0000)]
CodeGen: tweak struct ABI handling

Cygwin and MinGW fail to conform to the underlying system's structure passing
ABI.  Make the check more precise to ensure that we correctly generate code for
the itanium environment.

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

9 years agoSupport matching signext attribute in the parallel_num_threads_codegen test to appeas...
Daniel Sanders [Sat, 22 Nov 2014 16:21:18 +0000 (16:21 +0000)]
Support matching signext attribute in the parallel_num_threads_codegen test to appease clang-cmake-mips builder.

The Mips target adds the signext attribute to signed 32-bit integers in order
to support the N32/N64 correctly. Integers must be promoted to 64-bit bit on
these ABI's.

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

9 years agoSupport matching signext attribute in vla-lambda-capturing test to appease clang...
Daniel Sanders [Sat, 22 Nov 2014 16:08:56 +0000 (16:08 +0000)]
Support matching signext attribute in vla-lambda-capturing test to appease clang-cmake-mips builder.

The Mips target adds the signext attribute to signed 32-bit integers in order
to support the N32/N64 correctly. Integers must be promoted to 64-bit bit on
these ABI's.

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

9 years agoCodeGen: Make atomic operations play nice with address spaces
David Majnemer [Sat, 22 Nov 2014 10:44:12 +0000 (10:44 +0000)]
CodeGen: Make atomic operations play nice with address spaces

We were being a little sloppy with our pointer/address space casts.

This fixes PR21643.

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

9 years agoSimplify MicrosoftMangleContextImpl::shouldMangleStringLiteral
David Majnemer [Sat, 22 Nov 2014 06:20:38 +0000 (06:20 +0000)]
Simplify MicrosoftMangleContextImpl::shouldMangleStringLiteral

No functionality changed.

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

9 years agoDelay checking overrides for exception specifications if the overridden
Richard Smith [Sat, 22 Nov 2014 03:09:05 +0000 (03:09 +0000)]
Delay checking overrides for exception specifications if the overridden
specification has not yet been parsed.

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

9 years agoMS ABI: Mangle u8 string literals
David Majnemer [Fri, 21 Nov 2014 23:56:50 +0000 (23:56 +0000)]
MS ABI: Mangle u8 string literals

UTF8 string literals are mangled just like ASCII string literals.

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

9 years agoObjective-C ARC. Fixes a crash when checking for 'weak' propery
Fariborz Jahanian [Fri, 21 Nov 2014 21:12:11 +0000 (21:12 +0000)]
Objective-C ARC. Fixes a crash when checking for 'weak' propery
whose base is not an expression. rdar://19053620

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

9 years agoSema: Don't permit variably modified types in typeid
David Majnemer [Fri, 21 Nov 2014 21:09:12 +0000 (21:09 +0000)]
Sema: Don't permit variably modified types in typeid

GCC and ICC both reject this and the 'Runtime-sized arrays with
automatic storage duration' (N3639) paper forbade this as well.
Previously, we would crash on our way to mangling.

This fixes PR21632.

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

9 years agoImplement -Wcast-qual, fixing #13772.
Roman Divacky [Fri, 21 Nov 2014 21:03:10 +0000 (21:03 +0000)]
Implement -Wcast-qual, fixing #13772.

Many thanks to dblaikie for his advices and suggestions!

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

9 years agoMS ABI: Mangle char16_t and char32_t string literals
David Majnemer [Fri, 21 Nov 2014 19:57:25 +0000 (19:57 +0000)]
MS ABI: Mangle char16_t and char32_t string literals

We previously had support for char and wchar_t string literals.  VS 2015
added support for char16_t and char32_t.

String literals must be mangled in the MS ABI in order for them to be
deduplicated across translation units: their linker has no notion of
mergeable section.  Instead, they use the mangled name to make a COMDAT
for the string literal; the COMDAT will merge with other COMDATs in
other object files.

This allows strings in object files generated by clang to get merged
with strings in object files generated by MSVC.

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

9 years agoAdd an assertion for detecting missed/uncorrected TypoExprs.
Kaelyn Takata [Fri, 21 Nov 2014 18:48:06 +0000 (18:48 +0000)]
Add an assertion for detecting missed/uncorrected TypoExprs.

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

9 years agoEnable ActOnIdExpression to use delayed typo correction for non-C++ code
Kaelyn Takata [Fri, 21 Nov 2014 18:48:04 +0000 (18:48 +0000)]
Enable ActOnIdExpression to use delayed typo correction for non-C++ code
when calling DiagnoseEmptyLookup.

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

9 years agoProperly correct initializer expressions based on whether they would be valid.
Kaelyn Takata [Fri, 21 Nov 2014 18:48:00 +0000 (18:48 +0000)]
Properly correct initializer expressions based on whether they would be valid.

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

9 years agoUse the full-Expr filter to disambiguate equidistant correction
Kaelyn Takata [Fri, 21 Nov 2014 18:47:58 +0000 (18:47 +0000)]
Use the full-Expr filter to disambiguate equidistant correction
candidates.

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

9 years agoclang-format: Understand more lambda return types.
Daniel Jasper [Fri, 21 Nov 2014 14:08:38 +0000 (14:08 +0000)]
clang-format: Understand more lambda return types.

Before:
  auto a = [&b, c ](D * d) -> D * {}

After:
 auto a = [&b, c](D* d) -> D* {}

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

9 years agoclang-format: Use nested block special case for all languages.
Daniel Jasper [Fri, 21 Nov 2014 13:38:53 +0000 (13:38 +0000)]
clang-format: Use nested block special case for all languages.

Previously this was only used for JavaScript.

Before:
  functionCall({
                 int i;
                 int j;
               },
               aaaa, bbbb, cccc);

After:
  functionCall({
    int i;
    int j;
  }, aaaa, bbbb, cccc);

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

9 years agoFix test after r222526.
Dmitry Vyukov [Fri, 21 Nov 2014 12:48:43 +0000 (12:48 +0000)]
Fix test after r222526.

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

9 years agoclang-format: Handle comments in short case labels.
Daniel Jasper [Fri, 21 Nov 2014 12:36:25 +0000 (12:36 +0000)]
clang-format: Handle comments in short case labels.

With AllowShortCaseLabelsOnASingleLine set to true:
This gets now left unchanged:
  case 1:
    // comment
    return;

Whereas before it was changed into:
  case 1: // comment return;

This fixes llvm.org/PR21630.

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

9 years agoclang-format: [Java] Support more Java keywords.
Daniel Jasper [Fri, 21 Nov 2014 12:19:07 +0000 (12:19 +0000)]
clang-format: [Java] Support more Java keywords.

Before:
  public final<X> Foo foo() {
  }

  public abstract<X> Foo foo();

After:
  public final <X> Foo foo() {
  }

  public abstract <X> Foo foo();

Patch by Harry Terkelsen. Thank you.

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

9 years agoclang: do not add -pie for tsan
Dmitry Vyukov [Fri, 21 Nov 2014 12:19:01 +0000 (12:19 +0000)]
clang: do not add -pie for tsan

Revision 220571 removes the requirement to use -pie for tsan binaries. So remove -pie from driver.
Also s/hasZeroBaseShadow/requiresPIE/ because that is what it is used for. Msan does not have zero-based shadow, but requires pie. And in general the relation between zero-based shadow and pie is unclear.

http://reviews.llvm.org/D6318

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

9 years agoclang-format: [Java] Basic lambda support.
Daniel Jasper [Fri, 21 Nov 2014 12:14:12 +0000 (12:14 +0000)]
clang-format: [Java] Basic lambda support.

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

9 years ago[OPENMP] Disable CapturedStmt generation for standalone directives.
Alexey Bataev [Fri, 21 Nov 2014 11:33:46 +0000 (11:33 +0000)]
[OPENMP] Disable CapturedStmt generation for standalone directives.
No functional changes, just code improvement.

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

9 years agoMS ABI: Mangle char16_t and char32_t types
David Majnemer [Fri, 21 Nov 2014 09:06:49 +0000 (09:06 +0000)]
MS ABI: Mangle char16_t and char32_t types

These mangling make clang more compatible with MSVC 2015.
Correctly mangling char16_t and char32_t will take a little more work.

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

9 years agoFix missing diagnostic for unsupported TLS for some thread_local variables.
Bob Wilson [Fri, 21 Nov 2014 06:52:52 +0000 (06:52 +0000)]
Fix missing diagnostic for unsupported TLS for some thread_local variables.

Clang r181627 moved a check for block-scope variables into this code for
handling thread storage class specifiers, but in the process, it broke the
logic for checking if the target supports TLS. Fix this with some simple
restructuring of the code. rdar://problem/18796883

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

9 years ago[modules] When explicitly importing a module, it's fine for the imported module
Richard Smith [Fri, 21 Nov 2014 05:37:20 +0000 (05:37 +0000)]
[modules] When explicitly importing a module, it's fine for the imported module
to be newer than we were expecting. That happens if .pcm's get moved between
file systems during a distributed build. (It's still not OK for them to actually
be different, though, so we still check the size and signature matches.)

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

9 years agoPR21323: Fix iterator invalidation issue when looking for redeclarations of a
Richard Smith [Fri, 21 Nov 2014 05:16:13 +0000 (05:16 +0000)]
PR21323: Fix iterator invalidation issue when looking for redeclarations of a
special member function.

No test yet: the only testcases we have for this issue are extremely complex.
Testcase will be added once I get a reasonable reduction.

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

9 years agoExtend -Wuninitialized to warn when accessing uninitialized base classes in a
Richard Trieu [Fri, 21 Nov 2014 03:10:30 +0000 (03:10 +0000)]
Extend -Wuninitialized to warn when accessing uninitialized base classes in a
constructor.

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

9 years agorelax this testcase to not depend on a specific alignment.
Adrian Prantl [Fri, 21 Nov 2014 00:48:22 +0000 (00:48 +0000)]
relax this testcase to not depend on a specific alignment.

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

9 years agoDebug info for blocks: Fix a bug caught by the Verifier.
Adrian Prantl [Fri, 21 Nov 2014 00:35:25 +0000 (00:35 +0000)]
Debug info for blocks: Fix a bug caught by the Verifier.
When emitting nested block definitions, the insert-at-point variant of
DIBuilder::insertDeclare() could be called with the insertion point set
to the end-of-BasicBlock sentinel, causing the parent pointer of the
CallInst to be set to the intentionally bogus value of the sentinel.

Fixed by conditionally invoking the correct version of insertDeclare().
rdar://problem/19034882

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

9 years agoDebugInfo: Fix another case of r222377 when we do have a definition of the variable...
David Blaikie [Fri, 21 Nov 2014 00:20:58 +0000 (00:20 +0000)]
DebugInfo: Fix another case of r222377 when we do have a definition of the variable, but we might not be emitting it (such as templates)

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

9 years agoRemove code that tries to avoid transforming non-dependent call operator types
Richard Smith [Thu, 20 Nov 2014 23:53:14 +0000 (23:53 +0000)]
Remove code that tries to avoid transforming non-dependent call operator types
for lambda expressions. That can't ever work; we need to transform the
parameters in order to create new ones in the new call operator context.

Fixes a rejects-valid when transforming a context containing a
lambda-expression that uses its function parameters in C++14 mode.

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

9 years agoMove test from r222476 to a better place; this was reduced to the point that it
Richard Smith [Thu, 20 Nov 2014 23:00:25 +0000 (23:00 +0000)]
Move test from r222476 to a better place; this was reduced to the point that it
no longer contained a generic lambda.

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

9 years agoFix crash-on-valid if a lambda-expression appears lexically directly within a
Richard Smith [Thu, 20 Nov 2014 22:56:34 +0000 (22:56 +0000)]
Fix crash-on-valid if a lambda-expression appears lexically directly within a
local class inside a template.

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

9 years agoIntercept __crt_va_* used by MSVC "14"
Reid Kleckner [Thu, 20 Nov 2014 22:44:03 +0000 (22:44 +0000)]
Intercept __crt_va_* used by MSVC "14"

Moving further into the implementor's namespace is good, but now we have
one more name to intercept.

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

9 years agoPR21565: Further refine the conditions for enabling eager parsing of
Richard Smith [Thu, 20 Nov 2014 22:32:11 +0000 (22:32 +0000)]
PR21565: Further refine the conditions for enabling eager parsing of
std::X::swap exception specifications (allowing parsing of non-conforming code
in libstdc++). The old conditions also matched the functions in MSVC's STL,
which were relying on deferred parsing here.

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

9 years agoEnsure all TypoExprs are diagnosed by the tree transform.
Kaelyn Takata [Thu, 20 Nov 2014 22:06:44 +0000 (22:06 +0000)]
Ensure all TypoExprs are diagnosed by the tree transform.

If there is more than one TypoExpr within the expr being transformed and
any but the last TypoExpr seen don't have any viable candidates, the
tree transform will be aborted early and the remaining TypoExprs are
never seen and hence never diagnosed. This adds a simple
RecursiveASTVisitor to find all of the TypoExprs to be diagnosed in the
case where typo correction of the entire expr fails (and the result of
the tree transform is an ExprError).

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

9 years agoWire up delayed typo correction to DiagnoseEmptyLookup and set up
Kaelyn Takata [Thu, 20 Nov 2014 22:06:40 +0000 (22:06 +0000)]
Wire up delayed typo correction to DiagnoseEmptyLookup and set up
Sema::ActOnIdExpression to use the new functionality.

Among other things, this allows recovery in several cases where it
wasn't possible before (e.g. correcting a mistyped static_cast<>).

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

9 years agoAdd a flag to BuildDeclarationNameExpr to not reject invalid decls.
Kaelyn Takata [Thu, 20 Nov 2014 22:06:33 +0000 (22:06 +0000)]
Add a flag to BuildDeclarationNameExpr to not reject invalid decls.

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

9 years agoFactor out the default recovery handling.
Kaelyn Takata [Thu, 20 Nov 2014 22:06:30 +0000 (22:06 +0000)]
Factor out the default recovery handling.

The default handling is extended to properly create member expressions
and Objective-C ivar references.

Also detect and reject cases where multiple corrections have identical
correction distances and are valid, instead of suggesting the first one
that is found.

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

9 years agoAdd a few small helper methods to the TypoCorrectionConsumer.
Kaelyn Takata [Thu, 20 Nov 2014 22:06:29 +0000 (22:06 +0000)]
Add a few small helper methods to the TypoCorrectionConsumer.

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

9 years agoCorrectly set the SourceRange a TypoCorrection will replace.
Kaelyn Takata [Thu, 20 Nov 2014 22:06:26 +0000 (22:06 +0000)]
Correctly set the SourceRange a TypoCorrection will replace.

Also clean up TypoCorrection::setCorrectionRange while we're at it.

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

9 years agoThe Syntax enumeration requires at least three bits to store all of its values. Incre...
Aaron Ballman [Thu, 20 Nov 2014 21:34:56 +0000 (21:34 +0000)]
The Syntax enumeration requires at least three bits to store all of its values. Increase the number of bits for SyntaxUsed. Decrease the number of expression arguments allowed by a single bit so that the bit fields continue to add up to 32-bits evenly.

There is no test for this fix because I could find no reasonable way to trigger a visible failure from it.

Thanks to Doug Gregor for spotting this!

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

9 years agoBring PostOrderCFGView's insert API up to date with other API changes.
Michael Ilseman [Thu, 20 Nov 2014 19:32:48 +0000 (19:32 +0000)]
Bring PostOrderCFGView's insert API up to date with other API changes.

r222334 updates LLVM data structure's insert API to return a
pair. This change updates PostOrderCFGView accordingly, so that it can
be used interchangably with other sets.

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

9 years agoExtended list of valid frontend options with '-cl-std=CL2.0'.
Anastasia Stulova [Thu, 20 Nov 2014 19:25:00 +0000 (19:25 +0000)]
Extended list of valid frontend options with '-cl-std=CL2.0'.

This option sets language mode for the compilation of a source file to be OpenCL v2.0.

Example: clang -cc1 -cl-std=CL2.0 myfile.cl

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

9 years agoTesting commit access.
Anastasia Stulova [Thu, 20 Nov 2014 17:57:27 +0000 (17:57 +0000)]
Testing commit access.

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

9 years agoRemove now dead code.
Frederic Riss [Thu, 20 Nov 2014 16:24:29 +0000 (16:24 +0000)]
Remove now dead code.

After LLVM r222434, the Variables field of DISubprograms for forward
declarations will always be null. No need to keep code around to
delete them.

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

9 years agoPrepare for the DIBuilder populating DISubprogram's Variables with null.
Frederic Riss [Thu, 20 Nov 2014 15:46:59 +0000 (15:46 +0000)]
Prepare for the DIBuilder populating DISubprogram's Variables with null.

This is a followup to r222373. A better solution to the problem solved
there is to not create the leaked nodes at all (we know that they will
never be used for forward declared functions anyway). To avoid bot
breakage in the interval between the cfe and llvm commits, add a check
that the nMDNode is not null before deleting it. This code can completely
go away after the LLVM part is in.

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

9 years agoReplace variadic operator function pointer with an enum value.
Samuel Benzaquen [Thu, 20 Nov 2014 15:45:53 +0000 (15:45 +0000)]
Replace variadic operator function pointer with an enum value.

Summary:
Replace variadic operator function pointer with an enum value.
Hiding the implementation of the variadic matcher will allow to specialize them for the operation performed.
In particular, it will allow for a more efficient allOf() matcher.

Reviewers: klimek

Subscribers: klimek, cfe-commits

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

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

9 years agoConvert CR+LF -> LF in a test file
Timur Iskhodzhanov [Thu, 20 Nov 2014 12:59:14 +0000 (12:59 +0000)]
Convert CR+LF -> LF in a test file

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

9 years agoclang-format: [Java] Don't align after "return".
Daniel Jasper [Thu, 20 Nov 2014 09:54:49 +0000 (09:54 +0000)]
clang-format: [Java] Don't align after "return".

Doesn't seem to be common practice in Java.

Before:
  return aaaaaaaaaaaaaaaaaaa
         && bbbbbbbbbbbbbbbbbbb
         && ccccccccccccccccccc;

After:
  return aaaaaaaaaaaaaaaaaaa
      && bbbbbbbbbbbbbbbbbbb
      && ccccccccccccccccccc;

Patch by Harry Terkelsen.

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