]> granicus.if.org Git - clang/log
clang
9 years agoFix typo in tutorial.
Douglas Katzman [Tue, 2 Jun 2015 22:40:27 +0000 (22:40 +0000)]
Fix typo in tutorial.

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

9 years ago[MSVC Compatibility] Permit static_cast from void-ptr to function-ptr
David Majnemer [Tue, 2 Jun 2015 22:15:12 +0000 (22:15 +0000)]
[MSVC Compatibility] Permit static_cast from void-ptr to function-ptr

The MSVC 2013 and 2015 implementation of std::atomic is specialized for
pointer types.  The member functions are implemented using a static_cast
from void-ptr to function-ptr which is not allowed in the standard.
Permit this conversion if -fms-compatibility is present.

This fixes PR23733.

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

9 years agoCorrect DriverInternals.rst: ccc-print-options is gone.
Douglas Katzman [Tue, 2 Jun 2015 22:06:32 +0000 (22:06 +0000)]
Correct DriverInternals.rst: ccc-print-options is gone.

Was removed in svn r189802.

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

9 years agoclang-format: [JS] Always add space after fat arrow.
Daniel Jasper [Tue, 2 Jun 2015 22:06:07 +0000 (22:06 +0000)]
clang-format: [JS] Always add space after fat arrow.

Before:
  return () =>[];

After:
  return () => [];

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

9 years agoclang-format: [JS] Array literal detection fix #4.
Daniel Jasper [Tue, 2 Jun 2015 21:57:51 +0000 (21:57 +0000)]
clang-format: [JS] Array literal detection fix #4.

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

9 years ago[x86-64 ABI] Fix for PR23082: an assertion failure when passing/returning a wrapper...
Andrea Di Biagio [Tue, 2 Jun 2015 19:34:40 +0000 (19:34 +0000)]
[x86-64 ABI] Fix for PR23082: an assertion failure when passing/returning a wrapper union in a full YMM register.

This patch fixes an assertion failure in method
'X86_64ABIInfo::GetByteVectorType'.

Method 'GetByteVectorType' (in TargetInfo.cpp) is responsible
for mapping a QualType 'Ty' (for an argument or return value) to an LLVM IR
type that, according to the ABI, must be passed in a XMM/YMM vector register.

When selecting the IR vector type, method 'GetByteVectorType' always tries to
choose the "best" IR vector type for the 'Ty' in input. In particular, if Ty
is a wrapper structure, it keeps unwrapping it until it finds a vector type VTy.
That VTy is the "preferred IR type".

However, function 'isSingleElementStructure' (used to unwrap structures) does
not know how to look through union types. So, before this patch, if Ty was in
a nest of wrapper structures with at least two union types, we would have
triggered an assertion failure (added at revision 230971).

With this patch, if method 'GetByteVectorType' fails to find the preferred
vector type, we just return a valid (although potentially 'less friendly')
vector type based on the type size. So, rather than asserting on an 'unexpected'
'Ty' in input, we conservatively return vector type <2 x double> if Ty is 16
bytes, or <4 x double> if Ty is 32 bytes.

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

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

9 years agoadd missing dependency for CodeGen lib
Sanjay Patel [Tue, 2 Jun 2015 18:02:13 +0000 (18:02 +0000)]
add missing dependency for CodeGen lib

This looks to be exposed on some bots by r238851.

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

9 years agoadd the -mrecip driver flag and process its options (2nd try)
Sanjay Patel [Tue, 2 Jun 2015 16:55:12 +0000 (16:55 +0000)]
add the -mrecip driver flag and process its options (2nd try)

The first try to land this (r238055) was reverted due to bot failures
caused by the LLVM part of the patch. That was hopefully fixed by r238788,
and the LLVM patch was resubmitted at r238842.

This is the front-end counterpart to D8982.

The -mrecip option interface is based on maintaining compatibility with gcc:
https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/i386-and-x86-64-Options.html#index-mrecip_003dopt-1627
https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/RS_002f6000-and-PowerPC-Options.html#index-mrecip-2289

...while adding more functionality (allowing users to specify the number of refinement steps for each
estimate type).

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

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

9 years agoclang-format: Don't try to detect C++ lambdas in other languages.
Daniel Jasper [Tue, 2 Jun 2015 15:31:37 +0000 (15:31 +0000)]
clang-format: Don't try to detect C++ lambdas in other languages.

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

9 years agoclang-format: [JS] Fix incorrect line length calculation.
Daniel Jasper [Tue, 2 Jun 2015 15:14:21 +0000 (15:14 +0000)]
clang-format: [JS] Fix incorrect line length calculation.

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

9 years agoclang-format: [JS] Array literal detection fix #3.
Daniel Jasper [Tue, 2 Jun 2015 15:04:29 +0000 (15:04 +0000)]
clang-format: [JS] Array literal detection fix #3.

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

9 years agoclang-format: [JS] Fix another regression when detecting array literals.
Daniel Jasper [Tue, 2 Jun 2015 14:20:08 +0000 (14:20 +0000)]
clang-format: [JS] Fix another regression when detecting array literals.

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

9 years agoclang-format: [JS] Fix regression of detecting array literals.
Daniel Jasper [Tue, 2 Jun 2015 13:56:43 +0000 (13:56 +0000)]
clang-format: [JS] Fix regression of detecting array literals.

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

9 years agoMake vim also output a helpful message in some error cases.
Manuel Klimek [Tue, 2 Jun 2015 12:01:50 +0000 (12:01 +0000)]
Make vim also output a helpful message in some error cases.

When clang-format encounters a syntax error, it will not format that
line; we're now using the same mechanism we're already using in emacs to
show a helpful error message to the user.

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

9 years agoRemove error message when using the fallback style.
Manuel Klimek [Tue, 2 Jun 2015 11:52:15 +0000 (11:52 +0000)]
Remove error message when using the fallback style.

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

9 years ago[Basic] Transition getEnvironmentVersion from getOSVersion for android
David Majnemer [Mon, 1 Jun 2015 23:38:25 +0000 (23:38 +0000)]
[Basic] Transition getEnvironmentVersion from getOSVersion for android

'android' occupies the environment component of the triple.  Let's use
getEnvironmentVersion to extract it instead of getOSVersion.

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

9 years agoReplace a few std::string& with StringRef. NFC.
Rafael Espindola [Mon, 1 Jun 2015 20:00:16 +0000 (20:00 +0000)]
Replace a few std::string& with StringRef. NFC.

Patch by Косов Евгений!

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

9 years agoRevert "[Hexagon] Test passes for hexagon target now that the backend correctly gener...
Rafael Espindola [Mon, 1 Jun 2015 19:46:36 +0000 (19:46 +0000)]
Revert "[Hexagon] Test passes for hexagon target now that the backend correctly generates relocations."

This reverts commit r238754.

It depends on r238748, which was reverted.

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

9 years agoFix PR21945: Crash in constant evaluator.
Jonathan Roelofs [Mon, 1 Jun 2015 16:23:08 +0000 (16:23 +0000)]
Fix PR21945: Crash in constant evaluator.

Patch by Косов Евгений!

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

9 years ago[Hexagon] Test passes for hexagon target now that the backend correctly generates...
Colin LeMahieu [Mon, 1 Jun 2015 15:47:46 +0000 (15:47 +0000)]
[Hexagon] Test passes for hexagon target now that the backend correctly generates relocations.

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

9 years agoclang-format: [JS] Making arrow function wrapping more consistent.
Daniel Jasper [Mon, 1 Jun 2015 09:56:32 +0000 (09:56 +0000)]
clang-format: [JS] Making arrow function wrapping more consistent.

Before:
  someFunction(() =>
               {
                 doSomething();  // break
               })
      .doSomethingElse(  // break
          );

After:
  someFunction(() => {
    doSomething();  // break
  })
      .doSomethingElse(  // break
          );

This is still bad, but at least it is consistent with what we do for other
function literals. Added corresponding tests.

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

9 years ago[MS ABI] Be a little more defensive wrt vector types
David Majnemer [Mon, 1 Jun 2015 07:41:37 +0000 (07:41 +0000)]
[MS ABI] Be a little more defensive wrt vector types

We probably shouldn't say that all appropriately sized vector types are
intel vector types (i.e. __m128, etc.) as they don't exist for all
architectures.  While this is largely academic, it'd save some debugging
if we supported such a platform.

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

9 years ago[Format] Move UnwrappedLines instead of copying.
Benjamin Kramer [Sun, 31 May 2015 11:18:05 +0000 (11:18 +0000)]
[Format] Move UnwrappedLines instead of copying.

No functional change intended.

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

9 years agoclang-format: NFC. Cleanup after r237895.
Daniel Jasper [Sun, 31 May 2015 08:51:54 +0000 (08:51 +0000)]
clang-format: NFC. Cleanup after r237895.

Specifically adhere to LLVM Coding Standards (no 'else' after
return/break/continue) and remove yet another implementation of
paren counting. We already have enough of those in the
UnwrappedLineParser.

No functional changes intended.

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

9 years agoclang-format: [JS] Fix line breaks in computed property names.
Daniel Jasper [Sun, 31 May 2015 08:40:37 +0000 (08:40 +0000)]
clang-format: [JS] Fix line breaks in computed property names.

Before:
  let foo = {
    [someLongKeyHere]: 1,
    someOtherLongKeyHere: 2, [keyLongEnoughToWrap]: 3,
    lastLongKey: 4
  };

After:
  let foo = {
    [someLongKeyHere]: 1,
    someOtherLongKeyHere: 2,
    [keyLongEnoughToWrap]: 3,
    lastLongKey: 4
  };

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

9 years agoubsan: Check for null pointers given to certain builtins, such
Nuno Lopes [Sat, 30 May 2015 16:11:40 +0000 (16:11 +0000)]
ubsan: Check for null pointers given to certain builtins, such
as memcpy, memset, memmove, and bzero.

Reviewed by: Richard Smith

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

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

9 years ago[CodeGen] Indirect fields can initialize a union
David Majnemer [Sat, 30 May 2015 09:12:07 +0000 (09:12 +0000)]
[CodeGen] Indirect fields can initialize a union

The first named data member is the field used to default initialize the
union.  An IndirectFieldDecl can introduce the first named data member
of a union.

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

9 years agoFix 80-column violations.
Eric Christopher [Fri, 29 May 2015 23:09:49 +0000 (23:09 +0000)]
Fix 80-column violations.

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

9 years agoclang/CMakeLists.txt: s/LLVM_INSTALL_PACKAGE_DIR/CLANG_INSTALL_PACKAGE_DIR/ for the...
NAKAMURA Takumi [Fri, 29 May 2015 22:58:05 +0000 (22:58 +0000)]
clang/CMakeLists.txt: s/LLVM_INSTALL_PACKAGE_DIR/CLANG_INSTALL_PACKAGE_DIR/ for the standalone configuration.

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

9 years ago[Sema] Promote compound assignment exprs. with fp16 LHS and int. RHS.
Ahmed Bougacha [Fri, 29 May 2015 22:54:57 +0000 (22:54 +0000)]
[Sema] Promote compound assignment exprs. with fp16 LHS and int. RHS.

We catch most of the various other __fp16 implicit conversions to
float, but not this one:

  __fp16 a;
  int i;
  ...
  a += i;

For which we used to generate something 'fun' like:

  %conv = sitofp i32 %i to float
  %1 = tail call i16 @llvm.convert.to.fp16.f32(float %conv)
  %add = add i16 %0, %1

Instead, when we have an __fp16 LHS and an integer RHS, we should
use float as the result type.

While there, add a bunch of missing tests for mixed
__fp16/integer expressions.

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

9 years agoARM: fix ACLE predefine for iOS's "-arch armv7s".
Tim Northover [Fri, 29 May 2015 21:28:25 +0000 (21:28 +0000)]
ARM: fix ACLE predefine for iOS's "-arch armv7s".

We were getting "#define __ARM_ARCH_7 -S__ 1" which is really not a good idea.

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

9 years agoReplace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types
Benjamin Kramer [Fri, 29 May 2015 19:42:19 +0000 (19:42 +0000)]
Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types

If the type isn't trivially moveable emplace can skip a potentially
expensive move. It also saves a couple of characters.

Call sites were found with the ASTMatcher + some semi-automated cleanup.

memberCallExpr(
    argumentCountIs(1), callee(methodDecl(hasName("push_back"))),
    on(hasType(recordDecl(has(namedDecl(hasName("emplace_back")))))),
    hasArgument(0, bindTemporaryExpr(
                       hasType(recordDecl(hasNonTrivialDestructor())),
                       has(constructExpr()))),
    unless(isInTemplateInstantiation()))

No functional change intended.

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

9 years ago[CMake] Bug 19462 - Use the INSTALL(EXPORT ...) to export CMake definitions
Chris Bieneman [Fri, 29 May 2015 18:36:20 +0000 (18:36 +0000)]
[CMake] Bug 19462 - Use the INSTALL(EXPORT ...) to export CMake definitions

Summary: This patch moves all the clang library targets into a ClangTargets export list, and installs it using the CMake install(EXPORT...) command.

Reviewers: rnk

Reviewed By: rnk

Subscribers: cfe-commits

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

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

9 years ago[ARM] Adjust -march checking
John Brawn [Fri, 29 May 2015 13:10:44 +0000 (13:10 +0000)]
[ARM] Adjust -march checking

getCanonicalArchName can return an empty string for an architecture
that is well-formed but meaningless. Use parseArch to determine if
it's actually valid or not.

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

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

9 years agoFix assertion on C++ attributes in fillAttributedTypeLoc
Alexander Musman [Fri, 29 May 2015 11:24:32 +0000 (11:24 +0000)]
Fix assertion on C++ attributes in fillAttributedTypeLoc
this fixes http://llvm.org/PR17424
fillAttributedTypeLoc() function is only called with AttributeLists of either
DeclarationChunk (which is used for each type in a declarator being parsed) or
DeclSpec (which captures information about declaration specifiers).
As C++11 attributes actually appertain to declarators, they are moved straight
to the declarator’s attr list in distributeFunctionTypeAttrFromDeclSpec()
function.
'Put them wherever you like' semantics is not supported for C++11 attributes
(but is allowed for GNU attributes, for example). So when we meet an attribute
while parsing the declaration, we cannot be sure if it appertains to either
DeclarationChunk or DeclSpec.

This investigation correlates with the history of changes of SemaType.cpp:
• Asserts in fillAttributedTypeLoc() were added on 3 Mar 2011 in r126986
(http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-
        20110228/039638.html);
• Distributing C++11 attrs to the declarator was added on 14 Jan 2013
in r172504 (http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-
        20130114/071830.html).
Considering all written above I changed asserts in fillAttributedTypeLoc()
to nullptr checks.

This fixes PR17424 and related assertion on
[[gnu::fastcall]] void __stdcall foo();

Author: Alexey Frolov

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

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

9 years agoRefactor MacroInfo so macro arguments can be iterated with range-based for loops.
Daniel Marjamaki [Fri, 29 May 2015 09:15:24 +0000 (09:15 +0000)]
Refactor MacroInfo so macro arguments can be iterated with range-based for loops.

No functional change intended.

Patch by Sebastian Edman!

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

9 years agoRun clang-format on MacroInfo.h
Daniel Marjamaki [Fri, 29 May 2015 08:26:48 +0000 (08:26 +0000)]
Run clang-format on MacroInfo.h

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

9 years agoclang-format: [JS] Support ES6 computed property names.
Daniel Jasper [Fri, 29 May 2015 06:19:49 +0000 (06:19 +0000)]
clang-format: [JS] Support ES6 computed property names.

Before:
  var x = {
        [a]: 1,
    b: 2
  };

After:
  var x = {
    [a]: 1,
    b: 2
  };

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

9 years agoNFC: tab => spaces
Jingyue Wu [Fri, 29 May 2015 05:43:03 +0000 (05:43 +0000)]
NFC: tab => spaces

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

9 years agowip: Remove some unused functions
Justin Bogner [Fri, 29 May 2015 02:42:14 +0000 (02:42 +0000)]
wip: Remove some unused functions

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

9 years agoRemove dead code.
Richard Smith [Thu, 28 May 2015 23:38:53 +0000 (23:38 +0000)]
Remove dead code.

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

9 years agoAST: Fix printing GNU old-style field designators
Justin Bogner [Thu, 28 May 2015 22:19:36 +0000 (22:19 +0000)]
AST: Fix printing GNU old-style field designators

Allows StmtPrinter to print old style field designators in
initializers, fixing an issue where we would print the following
invalid code:

  struct A a = {b: = 3, .c = 4};

Patch by Nick Sumner. Thanks!

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

9 years agoImprove user documentation on profiling.
Diego Novillo [Thu, 28 May 2015 21:30:04 +0000 (21:30 +0000)]
Improve user documentation on profiling.

This clarifies the relationship between instrumentation and sampling based PGO,
code coverage analysis and the different formats supported by sample
profiling.

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

9 years ago[omp] Loosen the driver test enough so that overriding the defaults
Chandler Carruth [Thu, 28 May 2015 21:20:14 +0000 (21:20 +0000)]
[omp] Loosen the driver test enough so that overriding the defaults
works well for folks.

This isn't terribly clean (sadly) but after chatting with both Eric and
Richard, nothing cleaner really emerged. The clean way of doing this is
a *lot* of work for extremely little benefit here.

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

9 years ago[omp] Fix a typo in a comment and a line I forgot to clang-format that
Chandler Carruth [Thu, 28 May 2015 21:10:31 +0000 (21:10 +0000)]
[omp] Fix a typo in a comment and a line I forgot to clang-format that
Justin pointed out in post-commit review.

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

9 years ago[Format] Skip creating temporary std::strings when filling another string.
Benjamin Kramer [Thu, 28 May 2015 19:55:49 +0000 (19:55 +0000)]
[Format] Skip creating temporary std::strings when filling another string.

No functional change intended.

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

9 years ago[CodeGen] Update a test-case affected by folding IntToPtr/PtrToInt into Loads
David Majnemer [Thu, 28 May 2015 18:51:36 +0000 (18:51 +0000)]
[CodeGen] Update a test-case affected by folding IntToPtr/PtrToInt into Loads

Folding IntToPtr or PtrToInt into Loads, due to r238452,
perturbs the mips-varargs test-case.

Patch by Philip Pfaffe!

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

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

9 years agoGet the dll storage class right for structors of classes exported/imported via explic...
Hans Wennborg [Thu, 28 May 2015 17:44:56 +0000 (17:44 +0000)]
Get the dll storage class right for structors of classes exported/imported via explicit instantiation (PR23667)

This is a follow-up to r238266. It turned out structors are codegened through a different path,
and didn't get the storage class set in EmitGlobalFunctionDefinition.

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

9 years ago[ARM] Be less specific about the error message expected.
Ranjeet Singh [Thu, 28 May 2015 15:55:34 +0000 (15:55 +0000)]
[ARM] Be less specific about the error message expected.

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

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

9 years ago[ARMTargetParser] FIXME MachO arch names. NFC
Renato Golin [Thu, 28 May 2015 15:49:28 +0000 (15:49 +0000)]
[ARMTargetParser] FIXME MachO arch names. NFC

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

9 years ago[ARMTargetParser] FIXME on getLLVMArchSuffixForARM. NFC
Renato Golin [Thu, 28 May 2015 15:05:53 +0000 (15:05 +0000)]
[ARMTargetParser] FIXME on getLLVMArchSuffixForARM. NFC

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

9 years ago[ARMTargetParser] Removing string parsing from getCPUDefineSuffix. NFC.
Renato Golin [Thu, 28 May 2015 12:11:11 +0000 (12:11 +0000)]
[ARMTargetParser] Removing string parsing from getCPUDefineSuffix. NFC.

Yet another FIXME from ARMTargetParser.

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

9 years agoFix PPC failure. Adjust CHECK pattern.
Diego Novillo [Thu, 28 May 2015 11:25:52 +0000 (11:25 +0000)]
Fix PPC failure. Adjust CHECK pattern.

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

9 years agoclang-format: Lower binding strengths created by the [] created by ObjC
Daniel Jasper [Thu, 28 May 2015 07:21:50 +0000 (07:21 +0000)]
clang-format: Lower binding strengths created by the [] created by ObjC
method expressions and array literals. They should not bind stronger
than regular parentheses or the braces of braced lists.

Specific test case in JavaScript:
Before:
  var aaaaa: List<
      SomeThing> = [new SomeThingAAAAAAAAAAAA(), new SomeThingBBBBBBBBB()];

After:
  var aaaaa: List<SomeThing> = [
    new SomeThingAAAAAAAAAAAA(),
    new SomeThingBBBBBBBBB()
  ];

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

9 years ago[Basic] Define __declspec for cygwin
David Majnemer [Thu, 28 May 2015 04:36:18 +0000 (04:36 +0000)]
[Basic] Define __declspec for cygwin

Cygwin (and MinGW) targets define __declspec to __attribute__ unless
-fms-extensions is specified.  It turns out that cygwin headers rely on
the existence of this macro.

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

9 years ago[omp] Re-work Clang's handling of -fopenmp and undo r237769.
Chandler Carruth [Thu, 28 May 2015 01:52:38 +0000 (01:52 +0000)]
[omp] Re-work Clang's handling of -fopenmp and undo r237769.

This isn't an actual revert of r237769, it just restores the behavior of
the Clang driver prior to it while completely re-implementing how that
behavior works.

This also re-does the work of making the default OpenMP runtime
selectable at CMake (or configure) time to work in the way all of our
other such hooks do (config.h, configure and cmake hooks, etc.).

I've re-implemented how we manage the '-fopenmp' flagset in an important
way. Now, the "default" hook just makes '-fopenmp' equivalent to
'-fopenmp=<default>' rather than a separate special beast. Also, there
is an '-fno-openmp' flag which does the obvious thing. Also, the code is
shared between all the places to select a known OpenMP runtime and act
on it.

Finally, and most significantly, I've taught the driver to inspect the
selected runtime when choosing whether to propagate the '-fopenmp' flag
to the frontend in the CC1 commandline. Without this, it isn't possible
to use Clang with libgomp, even if you were happy with the serial,
boring way in which it worked previously (ignoring all #pragmas but
linking in the library to satisfy direct calls into the runtime).

While I'm here, I've gone ahead and sketched out a path for the future
name of LLVM's OpenMP runtime (libomp) and the legacy support for its
current name (libiomp5) in what seems a more reasonable way.

To re-enable LLVM's OpenMP runtime (which I think should wait until the
normal getting started instructions are a reasonable way for falks to
check out, build, and install Clang with the runtime) all that needs to
change is the default string in the CMakeLists.txt and configure.ac
file. No code changes necessary.

I also added a test for the driver's behavior around OpenMP since it was
*completely missing* previously. Makes it unsurprising that we got it
wrong.

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

9 years agoAdded doxygen comments for the intrinsics.
Ekaterina Romanova [Thu, 28 May 2015 01:25:25 +0000 (01:25 +0000)]
Added doxygen comments for the intrinsics.

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

9 years agoUpdate -Winvalid-noreturn to handle destructors better.
Richard Trieu [Thu, 28 May 2015 00:14:02 +0000 (00:14 +0000)]
Update -Winvalid-noreturn to handle destructors better.

When checking if a function is noreturn, consider a codepath to be noreturn if
the path destroys a class and the class destructor, base class destructors, or
member field destructors are marked noreturn.

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

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

9 years agoSet function entry counts with -fprofile-instr-use.
Diego Novillo [Wed, 27 May 2015 21:58:42 +0000 (21:58 +0000)]
Set function entry counts with -fprofile-instr-use.

This generates function entry counts from instrumentation profiles.

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

9 years agoIt appears these exports are needed, as wmmintrin.h includes them.
John Thompson [Wed, 27 May 2015 18:26:41 +0000 (18:26 +0000)]
It appears these exports are needed, as wmmintrin.h includes them.

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

9 years agoARMTargetParser FIXME getCPUProfile A/R/M
Renato Golin [Wed, 27 May 2015 14:15:12 +0000 (14:15 +0000)]
ARMTargetParser FIXME getCPUProfile A/R/M

This is the last of the easy ones.

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

9 years agoARMTargetParser FIXME: ARMv8 detection for hdiv
Renato Golin [Wed, 27 May 2015 13:33:00 +0000 (13:33 +0000)]
ARMTargetParser FIXME: ARMv8 detection for hdiv

Avoiding ugly combination of string parsing in the front-end. We still
need to move away from CPU parsing at all, but that's for a different
commit.

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

9 years agoclang-format: [JS] Fix incorrect detection of ternary expressions.
Daniel Jasper [Wed, 27 May 2015 05:37:40 +0000 (05:37 +0000)]
clang-format: [JS] Fix incorrect detection of ternary expressions.

A definintion like this could not be formatted at all:
  constructor({aa}: {
    aa?: string,
    aaaaaaaa?: string,
    aaaaaaaaaaaaaaa?: boolean,
    aaaaaa?: List<string>
  }) {
  }

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

9 years agoclang-format: Fix false positive in function annotation detection.
Daniel Jasper [Wed, 27 May 2015 04:55:47 +0000 (04:55 +0000)]
clang-format: Fix false positive in function annotation detection.

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

9 years agoclang-cl: Handle dll attributes in explicit class template specialization definitions...
Hans Wennborg [Wed, 27 May 2015 00:06:45 +0000 (00:06 +0000)]
clang-cl: Handle dll attributes in explicit class template specialization definitions (PR23667)

Previously, we wouldn't call checkDLLAttribute() after the class template
specialization definition if the class template was already instantiated
by an explicit class template specialization declaration.

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

9 years ago[MS ABI, DebugInfo] Omit the size for model-less pointers-to-members
David Majnemer [Tue, 26 May 2015 21:54:24 +0000 (21:54 +0000)]
[MS ABI, DebugInfo] Omit the size for model-less pointers-to-members

The representation of a pointer-to-member in the MS ABI is governed by
the layout of the relevant class or if a model has been explicitly
specified.  If no model is specified, then an appropriate
"worst-case-scenario" model is implicitly chosen if, and only, if the
pointer-to-member type's representation was needed.

Debug info cannot force a pointer-to-member type to have a
representation so do not try to query the size of such a type unless we
know it is safe to do so.

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

9 years ago[CodeGen] Handle flexible array members containing pointers to members
David Majnemer [Tue, 26 May 2015 21:28:50 +0000 (21:28 +0000)]
[CodeGen] Handle flexible array members containing pointers to members

Types can be classified as being zero-initializable or
non-zero-initializable.  We used to classify array types by giving them
the classification of their base element type.  However, incomplete
array types are never initialized directly and thus are always
zero-initializable.

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

9 years ago[MIPS] Re-land the change r238200 to fix extension of integer types
Petar Jovanovic [Tue, 26 May 2015 21:07:19 +0000 (21:07 +0000)]
[MIPS] Re-land the change r238200 to fix extension of integer types

Re-land the change r238200, but with modifications in the tests that should
prevent new failures in some environments as reported with the original
change on the mailing list.

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

9 years agoRemove the code in clang that is using TargetOptions::NoFramePointerElim.
Akira Hatanaka [Tue, 26 May 2015 20:18:26 +0000 (20:18 +0000)]
Remove the code in clang that is using TargetOptions::NoFramePointerElim.

This is the clang side change following r238244.

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

9 years agoFixing an RST issue to silence a sphinx warning.
Aaron Ballman [Tue, 26 May 2015 19:56:13 +0000 (19:56 +0000)]
Fixing an RST issue to silence a sphinx warning.

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

9 years ago__declspec is not a core Clang language extension. Instead, require -fms-extensions...
Aaron Ballman [Tue, 26 May 2015 19:44:52 +0000 (19:44 +0000)]
__declspec is not a core Clang language extension. Instead, require -fms-extensions or -fborland to enable the language extension.

Note: __declspec is also temporarily enabled when compiling for a CUDA target because there are implementation details relying on __declspec(property) support currently. When those details change, __declspec should be disabled for CUDA targets.

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

9 years agoRevert r238200: "[MIPS] fix extension of integer types (function calls)"
Hans Wennborg [Tue, 26 May 2015 19:39:54 +0000 (19:39 +0000)]
Revert r238200: "[MIPS] fix extension of integer types (function calls)"

mips-unsigned-ext-var.c and mips-unsigned-extend.c fail in some builds.

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

9 years agoChange final case of Driver::getToolChain to "if/else/else/else..."
Douglas Katzman [Tue, 26 May 2015 18:01:33 +0000 (18:01 +0000)]
Change final case of Driver::getToolChain to "if/else/else/else..."

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

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

9 years agoTest commit.
Ranjeet Singh [Tue, 26 May 2015 17:30:35 +0000 (17:30 +0000)]
Test commit.

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

9 years agoGoing out on a limb and guessing that someone viewing the 3.7 release notes may inste...
Aaron Ballman [Tue, 26 May 2015 16:12:07 +0000 (16:12 +0000)]
Going out on a limb and guessing that someone viewing the 3.7 release notes may instead want to view 3.6 instead of 3.5.

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

9 years ago[MIPS] fix extension of integer types (function calls)
Petar Jovanovic [Tue, 26 May 2015 13:30:54 +0000 (13:30 +0000)]
[MIPS] fix extension of integer types (function calls)

On MIPS unsigned int type should not be zero extended but sign-extended.

Patch by Strahinja Petrovic.

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

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

9 years agoclang-format: Guard the bin-packing in braced lists on BinPackArguments
Daniel Jasper [Tue, 26 May 2015 07:26:26 +0000 (07:26 +0000)]
clang-format: Guard the bin-packing in braced lists on BinPackArguments
instead of BinPackParameters. Braced lists are used as constructor
calls in many places and so the bin-packing should follow what is done
for other calls and not what is done for function declarations.

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

9 years agoclang-format: [JS] Support ES6 spread operator.
Daniel Jasper [Tue, 26 May 2015 07:18:56 +0000 (07:18 +0000)]
clang-format: [JS] Support ES6 spread operator.

Specifically, don't add a space before it.

Before:
  someFunction(... a);
  var x = [1, 2, ... a];

After:
  someFunction(...a);
  var x = [1, 2, ...a];

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

9 years agoclang-format: Fix child-formatting in macros.
Daniel Jasper [Tue, 26 May 2015 07:03:42 +0000 (07:03 +0000)]
clang-format: Fix child-formatting in macros.

This fixes a case where the column limit was incorrectly calculated
leading to a macro like this:

  #define A                                       \
    [] {                                          \
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(        \
          xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx); \
    }

exceeding the column limit.

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

9 years ago[MS ABI] Implement restrict qualified references
David Majnemer [Tue, 26 May 2015 01:30:45 +0000 (01:30 +0000)]
[MS ABI] Implement restrict qualified references

MSVC 2015 supports '__restrict' qualified reference types.

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

9 years agoThis patch adds support for the vector quadword add/sub instructions introduced
Kit Barton [Mon, 25 May 2015 15:52:45 +0000 (15:52 +0000)]
This patch adds support for the vector quadword add/sub instructions introduced
in POWER8.

These are the Clang-related changes for http://reviews.llvm.org/D9081

vadduqm
vaddeuqm
vaddcuq
vaddecuq
vsubuqm
vsubeuqm
vsubcuq
vsubecuq
All builtins are added in altivec.h, and guarded with the POWER8_VECTOR and
powerpc64 macros.

http://reviews.llvm.org/D9903

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

9 years agoBug fix for PR23577 (https://llvm.org/bugs/show_bug.cgi?id=23577#c0).
Alexander Musman [Mon, 25 May 2015 11:21:20 +0000 (11:21 +0000)]
Bug fix for PR23577 (https://llvm.org/bugs/show_bug.cgi?id=23577#c0).
"1-4" specifiers are returned as numeric constants, not identifiers,
and should be treated as such. Currently pragma handler incorrectly
assumes that they are returned as identifiers.

Patch by Andrey Bokhanko.

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

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

9 years ago[Driver] Unbreak hexagon build bots
David Majnemer [Sat, 23 May 2015 19:23:55 +0000 (19:23 +0000)]
[Driver] Unbreak hexagon build bots

AddHexagonTargetArgs didn't respect the driver flags by unconditionally
pushing -fno-signed-char.  Instead, add Hexagon handling to
isSignedCharDefault.

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

9 years ago[Driver] Handle -fno-signed-char and -fno-unsigned-char
David Majnemer [Sat, 23 May 2015 18:48:37 +0000 (18:48 +0000)]
[Driver] Handle -fno-signed-char and -fno-unsigned-char

GCC maps -fno-unsigned-char to -fsigned-char and -fno-signed-char to
-funsigned-char.

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

9 years ago[Sema] Don't use dyn_cast to detect an AtomicType
David Majnemer [Sat, 23 May 2015 01:32:17 +0000 (01:32 +0000)]
[Sema] Don't use dyn_cast to detect an AtomicType

An AtomicType might be hidden behind arbitrary levels of typedefs.
getAs<> will reliably walk through the sugar to get the underlying
AtomicType.

This fixes PR23638.

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

9 years agoThis reverts commit r238064 and r238055.
Rafael Espindola [Sat, 23 May 2015 00:30:33 +0000 (00:30 +0000)]
This reverts commit r238064 and r238055.

They depend on a reverted llvm commit.

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

9 years agoadd missing include for TargetRecip
Sanjay Patel [Fri, 22 May 2015 22:59:27 +0000 (22:59 +0000)]
add missing include for TargetRecip

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

9 years agoCodeGen: Avoid a reserved name and fix the naming style of some arguments. NFC
Justin Bogner [Fri, 22 May 2015 22:16:55 +0000 (22:16 +0000)]
CodeGen: Avoid a reserved name and fix the naming style of some arguments. NFC

It's undefined to use reserved names like _Diags. Fix up the other
parameter names to consistently use a modern style while I'm here.

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

9 years agoadd the -mrecip driver flag and process its options
Sanjay Patel [Fri, 22 May 2015 21:42:10 +0000 (21:42 +0000)]
add the -mrecip driver flag and process its options

This is the front-end counterpart to D8982 (LLVM r238051).

The -mrecip option interface is based on maintaining compatibility with gcc:
https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/i386-and-x86-64-Options.html#index-mrecip_003dopt-1627
https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/RS_002f6000-and-PowerPC-Options.html#index-mrecip-2289

...while adding more functionality (allowing users to specify the number of refinement steps for each
estimate type).

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

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

9 years agoMake unique section names the default again.
Rafael Espindola [Fri, 22 May 2015 20:44:03 +0000 (20:44 +0000)]
Make unique section names the default again.

Using non unique names found a bug in the ICF inplementation in gold:

https://sourceware.org/bugzilla/show_bug.cgi?id=18440

This reverts commit r234143.

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

9 years agoUse profile and version parsers from ARMTargetParser
Renato Golin [Fri, 22 May 2015 18:18:25 +0000 (18:18 +0000)]
Use profile and version parsers from ARMTargetParser

Now that ARMTargetParser can parse profile and version numbers,
use them instead of the local implementation.

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

9 years agoAdd clarifying note that sampling-based profiles cannot be used for code coverage.
Diego Novillo [Fri, 22 May 2015 16:05:07 +0000 (16:05 +0000)]
Add clarifying note that sampling-based profiles cannot be used for code coverage.

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

9 years agoUpdating the documentation to include an operator! for negative capability support.
Aaron Ballman [Fri, 22 May 2015 13:36:48 +0000 (13:36 +0000)]
Updating the documentation to include an operator! for negative capability support.

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

9 years agoAdding new AST matcher: isConstexpr
Szabolcs Sipos [Fri, 22 May 2015 11:35:50 +0000 (11:35 +0000)]
Adding new AST matcher: isConstexpr

It matches constexpr variable and function declarations.

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

9 years ago[OPENMP] Prepare codegen for privates in tasks for non-capturing of privates in Captu...
Alexey Bataev [Fri, 22 May 2015 08:56:35 +0000 (08:56 +0000)]
[OPENMP] Prepare codegen for privates in tasks for non-capturing of privates in CapturedStmt.

Reworked codegen for privates in tasks:

call @kmpc_omp_task_alloc();
...
call @kmpc_omp_task(task_proxy);

void map_privates(.privates_rec. *privs, type1 ** priv1_ref, ..., typen **privn_ref) {
  *priv1_ref = &privs->private1;
  ...
  *privn_ref = &privs->privaten;
  ret void
}

i32 task_entry(i32 ThreadId, i32 PartId, void* privs, void (void*, ...) map_privates, shareds* captures) {
  type1 **priv1;
  ...
  typen **privn;
  call map_privates(privs, priv1, ..., privn);
  <Task body with priv1, .., privn instead of the captured variables>.
  ret i32
}

i32 task_proxy(i32 ThreadId, kmp_task_t_with_privates *tt) {
  call task_entry(ThreadId, tt->task_data.PartId, &tt->privates, map_privates, tt->task_data.shareds);
}

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

9 years agoModernize some doc comments. NFC
Justin Bogner [Fri, 22 May 2015 06:48:13 +0000 (06:48 +0000)]
Modernize some doc comments. NFC

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

9 years ago[ItaniumMangle] Fix a typo.
David Majnemer [Fri, 22 May 2015 05:54:24 +0000 (05:54 +0000)]
[ItaniumMangle] Fix a typo.

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

9 years ago[Sema] Don't crash on out-of-line virtual constexpr functions
David Majnemer [Fri, 22 May 2015 05:49:41 +0000 (05:49 +0000)]
[Sema] Don't crash on out-of-line virtual constexpr functions

The method wasn't an overrider but didn't have 'virtual' textually
written because our CXXMethodDecl was an out-of-line definition.  Make
sure we use the canonical decl instead.

This fixes PR23629.

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

9 years agoApply existing checks to C++1Z (has_feature_cxx0x); NFC
Faisal Vali [Fri, 22 May 2015 02:57:28 +0000 (02:57 +0000)]
Apply existing checks to C++1Z (has_feature_cxx0x); NFC

This applies the existing checks in has_feature_cxx0x to -std=c++1z.
In addition, references to C++1y are updated to refer to C++14

No functional change. Testing of __has_feature for C++1z features
is not added in this change.

Patch by Hubert Tong!

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

9 years ago[OpenMP] Test AVX default SIMD alignment. NFC.
Ahmed Bougacha [Fri, 22 May 2015 02:51:49 +0000 (02:51 +0000)]
[OpenMP] Test AVX default SIMD alignment.  NFC.

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