]> granicus.if.org Git - clang/log
clang
10 years ago[mips] Invert the abicalls feature bit to be noabicalls so that it's possible for...
Daniel Sanders [Fri, 8 Aug 2014 15:47:17 +0000 (15:47 +0000)]
[mips] Invert the abicalls feature bit to be noabicalls so that it's possible for -mno-abicalls to take effect.

Also added the testcase that should have been in r215194.

This behaviour has surprised me a few times now. The problem is that the
generated MipsSubtarget::ParseSubtargetFeatures() contains code like this:

   if ((Bits & Mips::FeatureABICalls) != 0) IsABICalls = true;

so '-abicalls' means 'leave it at the default' and '+abicalls' means 'set it to
true'. In this case, (and the similar -modd-spreg case) I'd like the code to be

  IsABICalls = (Bits & Mips::FeatureABICalls) != 0;

or possibly:

   if ((Bits & Mips::FeatureABICalls) != 0)
     IsABICalls = true;
   else
     IsABICalls = false;

and preferably arrange for 'Bits & Mips::FeatureABICalls' to be true by default
(on some triples).

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

10 years agoExpose the CUDA shared attribute to the C API.
Eli Bendersky [Fri, 8 Aug 2014 14:59:00 +0000 (14:59 +0000)]
Expose the CUDA shared attribute to the C API.

Similar to r209767, which exposed other CUDA-related attributes.

Patch by Rob Springer.

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

10 years ago[mips] Add -mabicalls/-mno-abicalls to the driver
Daniel Sanders [Fri, 8 Aug 2014 13:44:50 +0000 (13:44 +0000)]
[mips] Add -mabicalls/-mno-abicalls to the driver

Based on a patch by Matheus Almeida. I've added testcases and fixed a bug where
the options weren't passed on to GAS.

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

10 years agoAdd missing header guards.
Benjamin Kramer [Fri, 8 Aug 2014 13:24:19 +0000 (13:24 +0000)]
Add missing header guards.

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

10 years agoclang-format: Prefer not to put lambdas on a single line.
Daniel Jasper [Fri, 8 Aug 2014 12:00:13 +0000 (12:00 +0000)]
clang-format: Prefer not to put lambdas on a single line.

Before:
  string abc =
      SomeFunction(aaaaaaaaaaaaa, aaaaa,
                   []() { SomeOtherFunctioooooooooooooooooooooooooon(); });

After:
  string abc = SomeFunction(aaaaaaaaaaaaa, aaaaa, []() {
    SomeOtherFunctioooooooooooooooooooooooooon();
  });

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

10 years agoclangAnalysis: Avoid member initializers in TempDtorContext to appease msc17.
NAKAMURA Takumi [Fri, 8 Aug 2014 09:51:07 +0000 (09:51 +0000)]
clangAnalysis: Avoid member initializers in TempDtorContext to appease msc17.

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

10 years agoFix branch reachabiliy annotation for temp dtor branches.
Manuel Klimek [Fri, 8 Aug 2014 07:37:13 +0000 (07:37 +0000)]
Fix branch reachabiliy annotation for temp dtor branches.

As we only create temp dtor decision branches when a temp dtor needs to
be run (as opposed to for each logical branch in the original
expression), we must include the information about all previous logical
branches when we annotate the temp dtor decision branch.

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

10 years agoParser: Array decls with static but without array size are illformed
David Majnemer [Fri, 8 Aug 2014 07:21:18 +0000 (07:21 +0000)]
Parser: Array decls with static but without array size are illformed

Array declarators involving the static keyword take on two forms:
    D[ static type-qualifier-listopt assignment-expression ]
    D[ type-qualifier-list static assignment-expression ]

Raise a diagnostic if the assignment-expression is missing.

This fixes PR20584.

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

10 years ago[CMake] Upate libdeps in FrontendTests corresponding to r215145.
NAKAMURA Takumi [Fri, 8 Aug 2014 01:26:23 +0000 (01:26 +0000)]
[CMake] Upate libdeps in FrontendTests corresponding to r215145.

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

10 years agoMS ABI: Don't force bases to have an inheritance model
David Majnemer [Fri, 8 Aug 2014 00:10:39 +0000 (00:10 +0000)]
MS ABI: Don't force bases to have an inheritance model

Previously, assigning an inheritance model to a derived class would
trigger further assiginments to the various bases of the class.  This
was done to fix a bug where we couldn't handle an implicit
base-to-derived conversion for pointers-to-members when the conversion
was ambiguous at an earlier point.

However, this is not how the MS scheme works.  Instead, assign
inheritance models to *just* the class which owns to declaration we
ended up referencing.

N.B.  This result is surprising in many ways.  It means that it is
possible for a base to have a "larger" inheritance model than it's
derived classes.  It also means that bases in the conversion path do not
get assigned a model.

struct A { void f(); void f(int); };
struct B : A {};
struct C : B {};
void f() { void (C::*x)() = &A::f; }

We can only begin to assign an inheritance model *after* we've seen the
address-of but *before* we've done the implicit conversion the more
derived pointer-to-member type.  After that point, both 'A' and 'C' will
have an inheritance model but 'B' will not.  Surprising, right?

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

10 years agoMS ABI: Handle member function pointers returning a member data pointer
David Majnemer [Thu, 7 Aug 2014 22:56:13 +0000 (22:56 +0000)]
MS ABI: Handle member function pointers returning a member data pointer

MSVC doesn't decide what the inheritance model for a returned member
pointer *until* a call expression returns it.

This fixes PR20017.

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

10 years agoTemporarily Revert "Update for llvm API change."
Eric Christopher [Thu, 7 Aug 2014 22:09:08 +0000 (22:09 +0000)]
Temporarily Revert "Update for llvm API change."

This reverts commit 215113 to match the reversion in llvm.

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

10 years agoDebug info: Use the vbtable offset for virtual bases in the MS ABI
Reid Kleckner [Thu, 7 Aug 2014 21:29:25 +0000 (21:29 +0000)]
Debug info: Use the vbtable offset for virtual bases in the MS ABI

There are no vtable offset offsets in the MS ABI, but vbtable offsets
are analogous.  There are no consumers of this information yet, but at
least we don't crash now.

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

10 years ago[modules] Don't defer performing updates if we have incomplete redecl chains.
Richard Smith [Thu, 7 Aug 2014 20:58:41 +0000 (20:58 +0000)]
[modules] Don't defer performing updates if we have incomplete redecl chains.
Instead, perform them carefully immediately.

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

10 years agoObjective-C arc. Switch the Objective-C dictionary literal in ARC mode
Fariborz Jahanian [Thu, 7 Aug 2014 20:57:35 +0000 (20:57 +0000)]
Objective-C arc. Switch the Objective-C dictionary literal in ARC mode
to use non-retain/autorelease API variants of ObjC objects. wip.
rdar://17554063

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

10 years agoFlip the order the preprocessor and frontendaction are informed of the end of a file.
Benjamin Kramer [Thu, 7 Aug 2014 20:51:16 +0000 (20:51 +0000)]
Flip the order the preprocessor and frontendaction are informed of the end of a file.

This allows using EndOfMainFile from a PPCallback to access data from the
action. The pattern of PPCallback referencing an action is common in clang-tidy.

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

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

10 years agoRevert "Debug info: Use record layout to find vbase offsets instead of vtables"
Reid Kleckner [Thu, 7 Aug 2014 20:36:48 +0000 (20:36 +0000)]
Revert "Debug info: Use record layout to find vbase offsets instead of vtables"

This reverts commit r215137.

This doesn't work at all, an offset-offset is probably different than an
offset.  I'm scared that this passed our normal test suite.

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

10 years agoDebug info: Use record layout to find vbase offsets instead of vtables
Reid Kleckner [Thu, 7 Aug 2014 19:43:01 +0000 (19:43 +0000)]
Debug info: Use record layout to find vbase offsets instead of vtables

This fixes an assertion when generating full debug info in the MS ABI
for classes with virtual bases.

Fixes PR20579.

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

10 years ago[modules] When emitting an update record containing the body of a destructor,
Richard Smith [Thu, 7 Aug 2014 18:53:08 +0000 (18:53 +0000)]
[modules] When emitting an update record containing the body of a destructor,
also emit the updated 'operator delete' looked up for that destructor. Switch
from UpdateDecl to an actual update record when this happens due to implicitly
defining a special member function and unify this code path and the one for
instantiating a function definition.

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

10 years agotest/Modules: Use FileCheck's -allow-empty instead of "count 0"
Justin Bogner [Thu, 7 Aug 2014 18:45:21 +0000 (18:45 +0000)]
test/Modules: Use FileCheck's -allow-empty instead of "count 0"

Piping stderr into "count 0" in tests doesn't work - things like guard
malloc write to stderr and mess up the count. This comes up all the
time, so I've added a feature to FileCheck to fix it this time.

Fixes test failures caused by r215046 under guard malloc.

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

10 years agoMark successors as reachable/unreachable instead of changing the CFG.
Manuel Klimek [Thu, 7 Aug 2014 18:44:19 +0000 (18:44 +0000)]
Mark successors as reachable/unreachable instead of changing the CFG.

As suggested by Ted, this makes a few warnings less aggressive.

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

10 years agoFix CFG for temporary dtors when the branch taken is known.
Manuel Klimek [Thu, 7 Aug 2014 17:02:21 +0000 (17:02 +0000)]
Fix CFG for temporary dtors when the branch taken is known.

Use the parent context when visiting temporaries when we do not insert a
temporary dtor decision branch.

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

10 years agoModel temporary destructors from logical operators with known values.
Manuel Klimek [Thu, 7 Aug 2014 16:05:51 +0000 (16:05 +0000)]
Model temporary destructors from logical operators with known values.

If the truth value of a LHS is known, we can build the knowledge whether
a temporary destructor is executed or not into the CFG. This is needed
by the return type analysis.

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

10 years agoOnly have one path in the CFG for ternaries if the condition is known.
Manuel Klimek [Thu, 7 Aug 2014 14:25:43 +0000 (14:25 +0000)]
Only have one path in the CFG for ternaries if the condition is known.

The return type analysis requires that the CFG is simplified when the
truth values of branches are statically known at analysis time.

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

10 years agoUpdate for llvm API change.
Rafael Espindola [Thu, 7 Aug 2014 14:23:03 +0000 (14:23 +0000)]
Update for llvm API change.

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

10 years agoRe-applying r214962.
Manuel Klimek [Thu, 7 Aug 2014 10:42:17 +0000 (10:42 +0000)]
Re-applying r214962.

Changes to the original patch:
- model the CFG for temporary destructors in conditional operators so that
  the destructors of the true and false branch are always exclusive. This
  is necessary because we must not have impossible paths for the path
  based analysis to work.
- add multiple regression tests with ternary operators

Original description:
Fix modelling of non-lifetime-extended temporary destructors in the
analyzer.

Changes to the CFG:
When creating the CFG for temporary destructors, we create a structure
that mirrors the branch structure of the conditionally executed
temporary constructors in a full expression.
The branches we create use a CXXBindTemporaryExpr as terminator which
corresponds to the temporary constructor which must have been executed
to enter the destruction branch.

2. Changes to the Analyzer:
When we visit a CXXBindTemporaryExpr we mark the CXXBindTemporaryExpr as
executed in the state; when we reach a branch that contains the
corresponding CXXBindTemporaryExpr as terminator, we branch out
depending on whether the corresponding CXXBindTemporaryExpr was marked
as executed.

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

10 years agoDriver: Add tests for -fprofile-arcs and -fno-profile-arcs
Justin Bogner [Thu, 7 Aug 2014 03:58:32 +0000 (03:58 +0000)]
Driver: Add tests for -fprofile-arcs and -fno-profile-arcs

I tried to be lazy and get away with no test in r215051, but Chad
caught me :)

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

10 years agoDriver: Add -fno-profile-arcs to go with -fprofile-arcs
Justin Bogner [Thu, 7 Aug 2014 03:14:34 +0000 (03:14 +0000)]
Driver: Add -fno-profile-arcs to go with -fprofile-arcs

This is a trivial gcc-compatible change.

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

10 years agoUpdate the context location of the condition of a conditional operator to the
Richard Trieu [Thu, 7 Aug 2014 02:09:05 +0000 (02:09 +0000)]
Update the context location of the condition of a conditional operator to the
question mark instead of the context of the conditional operator.  The
condition does not need the context of the conditional operator at all.

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

10 years agoMake FullExprArg trivially copyable by removing the copy ctor
Reid Kleckner [Thu, 7 Aug 2014 01:00:42 +0000 (01:00 +0000)]
Make FullExprArg trivially copyable by removing the copy ctor

The default copy ctor is good.  This avoids using inalloca for a bunch
of Sema methods when self-hosting.

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

10 years agoUse -Rblah, not -Wblah, to control remark diagnostics. This was always the
Richard Smith [Thu, 7 Aug 2014 00:24:21 +0000 (00:24 +0000)]
Use -Rblah, not -Wblah, to control remark diagnostics. This was always the
intent when we added remark support, but was never implemented in the general
case, because the first -R flags didn't need it. (-Rpass= had special handling
to accomodate its argument.)

-Rno-foo, -Reverything, and -Rno-everything can be used to turn off a remark,
or to turn on or off all remarks. Per discussion on cfe-commits, -Weverything
does not affect remarks, and -Reverything does not affect warnings or errors.

The only "real" -R flag we have right now is -Rmodule-build; that flag is
effectively renamed from -Wmodule-build to -Rmodule-build by this change.

-Wpass and -Wno-pass (and their friends) are also renamed to -Rpass and
-Rno-pass by this change; it's not completely clear whether we intended to have
a -Rpass (with no =pattern), but that is unchanged by this commit, other than
the flag name. The default pattern is effectively one which matches no passes.
In future, we may want to make the default pattern be .*, so that -Reverything
works for -Rpass properly.

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

10 years agoAdd back the leading space when printing commands with -###
Reid Kleckner [Thu, 7 Aug 2014 00:05:00 +0000 (00:05 +0000)]
Add back the leading space when printing commands with -###

This was an unintentional behavior change from r214924.

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

10 years agoObjective-C ARC. More code for Objective-C's
Fariborz Jahanian [Wed, 6 Aug 2014 23:40:31 +0000 (23:40 +0000)]
Objective-C ARC. More code for Objective-C's
new APIs for literals. nfc. wip. rdar://17554063

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

10 years agoRevert "Fix modelling of non-lifetime-extended temporary destructors in the analyzer."
Rui Ueyama [Wed, 6 Aug 2014 22:01:54 +0000 (22:01 +0000)]
Revert "Fix modelling of non-lifetime-extended temporary destructors in the analyzer."

This reverts commit r214962 because after the change the
following code doesn't compile with -Wreturn-type -Werror.

  #include <cstdlib>

  class NoReturn {
  public:
    ~NoReturn() __attribute__((noreturn)) { exit(1); }
  };

  int check() {
    true ? NoReturn() : NoReturn();
  }

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

10 years agoObjective-C ARC. Adding declarations for Objective-C's
Fariborz Jahanian [Wed, 6 Aug 2014 20:56:21 +0000 (20:56 +0000)]
Objective-C ARC. Adding declarations for Objective-C's
new APIs for literals. nfc. wip. rdar://17554063

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

10 years agoObjective-C ARC. First patch toward generating new APIs
Fariborz Jahanian [Wed, 6 Aug 2014 18:13:46 +0000 (18:13 +0000)]
Objective-C ARC. First patch toward generating new APIs
for Objective-C's array and dictionary literals.
rdar://17554063. This is wip.

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

10 years agoFormatTokenLexer: Avoid non-static member initializer.
NAKAMURA Takumi [Wed, 6 Aug 2014 16:53:13 +0000 (16:53 +0000)]
FormatTokenLexer: Avoid non-static member initializer.

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

10 years agoRemove unnecessary semicolon.
Manuel Klimek [Wed, 6 Aug 2014 14:21:59 +0000 (14:21 +0000)]
Remove unnecessary semicolon.

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

10 years agoclang-format: Correct SBPO_Always-behavior after function-like keywords
Daniel Jasper [Wed, 6 Aug 2014 14:15:41 +0000 (14:15 +0000)]
clang-format: Correct SBPO_Always-behavior after function-like keywords

Before:
  auto f (int x) -> decltype(x) { return sizeof(x); }
  int g () noexcept(someCall ());
  static_assert(sizeof(char) == 1, "Your compiler is broken");

After:
  auto f (int x) -> decltype (x) { return sizeof (x); }
  int g () noexcept (someCall ());
  static_assert (sizeof (char) == 1, "Your compiler is broken");

This fixes llvm.org/PR20559.
Patch by Roman Kashitsyn, thank you!

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

10 years agoFix sphinx warning.
Dan Liew [Wed, 6 Aug 2014 13:49:33 +0000 (13:49 +0000)]
Fix sphinx warning.

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

10 years agoclang-format: Add special comments to disable formatting.
Daniel Jasper [Wed, 6 Aug 2014 13:40:26 +0000 (13:40 +0000)]
clang-format: Add special comments to disable formatting.

With this patch:
  int ThisWillBeFormatted;
  // clang-format off
  int   ThisWontBeFormatted;
  // clang-format on
  int Formatted;

This is for regions where a significantly nicer code layout can be found
knowing the content of the code.

This fixes llvm.org/PR20463.

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

10 years agoclang-format: Fix indentation in multi-line placement new.
Daniel Jasper [Wed, 6 Aug 2014 13:14:58 +0000 (13:14 +0000)]
clang-format: Fix indentation in multi-line placement new.

Before:
  auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =
      new (aaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa))
      typename aaaaaaaaaaaaaaaaaaaaaaaa();

After:
  auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =
      new (aaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa))
          typename aaaaaaaaaaaaaaaaaaaaaaaa();

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

10 years agoFix modelling of non-lifetime-extended temporary destructors in the analyzer.
Manuel Klimek [Wed, 6 Aug 2014 12:45:51 +0000 (12:45 +0000)]
Fix modelling of non-lifetime-extended temporary destructors in the analyzer.

1. Changes to the CFG:
When creating the CFG for temporary destructors, we create a structure
that mirrors the branch structure of the conditionally executed
temporary constructors in a full expression.
The branches we create use a CXXBindTemporaryExpr as terminator which
corresponds to the temporary constructor which must have been executed
to enter the destruction branch.

2. Changes to the Analyzer:
When we visit a CXXBindTemporaryExpr we mark the CXXBindTemporaryExpr as
executed in the state; when we reach a branch that contains the
corresponding CXXBindTemporaryExpr as terminator, we branch out
depending on whether the corresponding CXXBindTemporaryExpr was marked
as executed.

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

10 years ago[Driver] Add missed include header.
Simon Atanasyan [Wed, 6 Aug 2014 06:04:48 +0000 (06:04 +0000)]
[Driver] Add missed include header.

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

10 years ago[Driver] Move information about toolchain specific include directories
Simon Atanasyan [Wed, 6 Aug 2014 05:44:47 +0000 (05:44 +0000)]
[Driver] Move information about toolchain specific include directories
from the common driver code to the corresponding `MultilibSet` declarations.

Now the `MultilibSet` can hold an optional callback function which is
responsible to return a set of include directories specific for the toolchain.
That allows to remove MIPS toolchain specific directories from
`Linux::AddClangSystemIncludeArgs` method and simplify adding new directories
in the future.

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

10 years agoMS ABI: Mangle lambdas which are given the same mangling number
David Majnemer [Wed, 6 Aug 2014 03:12:47 +0000 (03:12 +0000)]
MS ABI: Mangle lambdas which are given the same mangling number

It is possible for lambdas to get the same mangling number because they
may exist in different mangling contexts.  To handle this correctly,
mangle the context into the name as well.

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

10 years agoRemove trailing whitespaces
Rui Ueyama [Tue, 5 Aug 2014 23:43:21 +0000 (23:43 +0000)]
Remove trailing whitespaces

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

10 years agoMS ABI: Mangle empty type parameter packs compatibly
David Majnemer [Tue, 5 Aug 2014 22:43:45 +0000 (22:43 +0000)]
MS ABI: Mangle empty type parameter packs compatibly

The MS mangling scheme apparently has separate manglings for type and
non-type parameter packs when they are empty.  Match template arguments
with parameters during mangling; check the parameter to see if it was
destined to hold type-ish things or nontype-ish things.

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

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

10 years agoFix Driver tests that I broke on Windows in r214924
Reid Kleckner [Tue, 5 Aug 2014 22:39:07 +0000 (22:39 +0000)]
Fix Driver tests that I broke on Windows in r214924

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

10 years agoExpose the name mangling C API to Python bindings.
Eli Bendersky [Tue, 5 Aug 2014 22:27:50 +0000 (22:27 +0000)]
Expose the name mangling C API to Python bindings.

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

10 years agoMake crash diagnostics on Windows the tiniest bit more useful
Reid Kleckner [Tue, 5 Aug 2014 20:49:12 +0000 (20:49 +0000)]
Make crash diagnostics on Windows the tiniest bit more useful

This escapes any backslashes in the executable path and fixes an issue
with a trailing quote when the main file name had to be quoted during
printing.

It's impossible to test this without putting backslashes or quotes into
the executable path, so I didn't add automated tests.

The crash diagnostics are still only useful if you're using bash on
Windows, though.  This should probably be writing a batch file instead.

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

10 years agoIntroduce f[no-]max-unknown-pointer-align=[number] option
Fariborz Jahanian [Tue, 5 Aug 2014 18:37:48 +0000 (18:37 +0000)]
Introduce f[no-]max-unknown-pointer-align=[number] option
to instruct the code generator to not enforce a higher alignment
than the given number (of bytes) when accessing memory via an opaque
pointer or reference. Patch reviewed by John McCall (with post-commit
review pending). rdar://16254558

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

10 years ago[Analyzer] fix for PR19102
Anton Yartsev [Tue, 5 Aug 2014 18:26:05 +0000 (18:26 +0000)]
[Analyzer] fix for PR19102

Newly-created unconsumed instance is now assumed escaped if an invoked constructor has an argument of a pointer-to-record type.

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

10 years agoAdded f and m flags to be ignored. These will not display a warning. The revision
Arthur Marble [Tue, 5 Aug 2014 18:21:20 +0000 (18:21 +0000)]
Added f and m flags to be ignored. These will not display a warning. The revision
for this patch is here: http://reviews.llvm.org/D4570. This will help with the
rebuild of Debian with clang. Here is a link to the errors that Debian is
experiencing: http://clang.debian.net/status.php?version=3.4.2&key=UNKNOWN_ARG

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

10 years agoAdded flags that should be ignored for compatibility. These flags will display
Arthur Marble [Tue, 5 Aug 2014 18:13:48 +0000 (18:13 +0000)]
Added flags that should be ignored for compatibility. These flags will display
a warning. Revision for this patch is here: http://reviews.llvm.org/D4565. This
patch will help with the rebuild of Debian with clang and many other projects
that wish to use clang. Here is a link to the errors that Debian is experiencing:
http://clang.debian.net/status.php?version=3.4.2&key=UNKNOWN_ARG

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

10 years ago[PR19983] SBPO_Always not covering all the cases.
Chad Rosier [Tue, 5 Aug 2014 17:58:54 +0000 (17:58 +0000)]
[PR19983] SBPO_Always not covering all the cases.
Patch by "Roman Kashitsyn" <romankashicin@gmail.com>.
Phabricator revision: http://reviews.llvm.org/D4788

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

10 years ago[AVX512] Add intrinsic for valignd/q
Adam Nemet [Tue, 5 Aug 2014 17:28:23 +0000 (17:28 +0000)]
[AVX512] Add intrinsic for valignd/q

Note that similar to palingr, we could further optimize these to emit
shufflevector when the shift count is <=64.  This however does not
change the overall design that unlike palignr we would still need the LLVM
intrinsic corresponding to this intruction to handle the >64 cases.  (palignr
uses the psrldq intrinsic in this case.)

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

10 years agoReleaseNotes: try to fix links
Hans Wennborg [Tue, 5 Aug 2014 17:19:14 +0000 (17:19 +0000)]
ReleaseNotes: try to fix links

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

10 years agoReleaseNotes: mention basic debug info and ASan support in the Windows blurb
Hans Wennborg [Tue, 5 Aug 2014 17:15:00 +0000 (17:15 +0000)]
ReleaseNotes: mention basic debug info and ASan support in the Windows blurb

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

10 years agoASTMatchersTests/matchesConditionallyWithCuda: Add -fno-ms-extensions, and get rid...
NAKAMURA Takumi [Tue, 5 Aug 2014 15:54:43 +0000 (15:54 +0000)]
ASTMatchersTests/matchesConditionallyWithCuda: Add -fno-ms-extensions, and get rid of initializer list.

I am not sure whether -xcuda might imply -fno-ms-extensions.

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

10 years agoASTMatchers.h: Fix an annotation. [-Wdocumentation-html]
NAKAMURA Takumi [Tue, 5 Aug 2014 15:01:31 +0000 (15:01 +0000)]
ASTMatchers.h: Fix an annotation. [-Wdocumentation-html]

Angle brackets, aka &lt; &gt;, should be escaped.

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

10 years ago[CMake] clangCodeGen: Update libdeps to add clangLex for PPChainedCallbacks.
NAKAMURA Takumi [Tue, 5 Aug 2014 15:01:12 +0000 (15:01 +0000)]
[CMake] clangCodeGen: Update libdeps to add clangLex for PPChainedCallbacks.

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

10 years agoclang-format: Add option to always break after a function's return type.
Daniel Jasper [Tue, 5 Aug 2014 12:16:31 +0000 (12:16 +0000)]
clang-format: Add option to always break after a function's return type.

This is required for GNU coding style, among others.

Also update the configuration documentation.

Modified from an original patch by Jarkko Hietaniemi, thank you!

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

10 years agoclang-format: Break before 'else' in Stroustrup style.
Daniel Jasper [Tue, 5 Aug 2014 12:06:20 +0000 (12:06 +0000)]
clang-format: Break before 'else' in Stroustrup style.

Seems to be the desired thing to do according to:
  http://www.stroustrup.com/Programming/PPP-style-rev3.pdf

Patch by Jarkko Hietaniemi, thank you!

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

10 years agoUpdating the documentation comment to list another parameter. No functional changes.
Aaron Ballman [Tue, 5 Aug 2014 11:48:21 +0000 (11:48 +0000)]
Updating the documentation comment to list another parameter. No functional changes.

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

10 years agoMachO: set sizeof result type to what embedded headers expect.
Tim Northover [Tue, 5 Aug 2014 11:07:26 +0000 (11:07 +0000)]
MachO: set sizeof result type to what embedded headers expect.

Embedded systems seem to have inherited Darwin's choise of "unsigned long" for
size_t (via a bunch of headers), so we should respect that.

rdar://problem/17872787

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

10 years agoAdds AST matchers for matching CUDA declarations.
Manuel Klimek [Tue, 5 Aug 2014 09:45:53 +0000 (09:45 +0000)]
Adds AST matchers for matching CUDA declarations.

Patch by Jacques Pienaar.

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

10 years agoMS ABI: Make the alias template mangling more correct
David Majnemer [Tue, 5 Aug 2014 06:42:40 +0000 (06:42 +0000)]
MS ABI: Make the alias template mangling more correct

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

10 years agoReleaseNotes: add blurb about Windows support
Hans Wennborg [Tue, 5 Aug 2014 00:21:23 +0000 (00:21 +0000)]
ReleaseNotes: add blurb about Windows support

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

10 years agoCodeGenObjCXX: Add a test for r214699
David Majnemer [Tue, 5 Aug 2014 00:01:15 +0000 (00:01 +0000)]
CodeGenObjCXX: Add a test for r214699

I forgot to add this with the changes for r214699.

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

10 years agoMS ABI: Aligned tentative definitions don't have CommonLinkage
David Majnemer [Tue, 5 Aug 2014 00:01:13 +0000 (00:01 +0000)]
MS ABI: Aligned tentative definitions don't have CommonLinkage

int __declspec(align(16)) foo; is a tentative definition but the storage
for that variable should not have CommonLinkage.

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

10 years ago[PPC64LE] Fix wrong IR for vec_sld and vec_vsldoi
Bill Schmidt [Mon, 4 Aug 2014 23:21:26 +0000 (23:21 +0000)]
[PPC64LE] Fix wrong IR for vec_sld and vec_vsldoi

My original LE implementation of the vsldoi instruction, with its
altivec.h interfaces vec_sld and vec_vsldoi, produces incorrect
shufflevector operations in the LLVM IR.  Correct code is generated
because the back end handles the incorrect shufflevector in a
consistent manner.

This patch and a companion patch for LLVM correct this problem by
removing the fixup from altivec.h and the corresponding fixup from the
PowerPC back end.  Several test cases are also modified to reflect the
now-correct LLVM IR.

The vec_sums and vec_vsumsws interfaces in altivec.h are also fixed,
because they used vec_perm calls intended to be recognized as vsldoi
instructions.  These vec_perm calls are now replaced with code that
more clearly shows the intent of the transformation.

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

10 years agoThreadSafety.cpp: Prune bogus \param(s). [-Wdocumentation]
NAKAMURA Takumi [Mon, 4 Aug 2014 22:48:46 +0000 (22:48 +0000)]
ThreadSafety.cpp: Prune bogus \param(s). [-Wdocumentation]

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

10 years agoThreadSafetyAnalysis: Fix annotations in class members. [-Wdocumentation]
NAKAMURA Takumi [Mon, 4 Aug 2014 22:48:36 +0000 (22:48 +0000)]
ThreadSafetyAnalysis: Fix annotations in class members. [-Wdocumentation]

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

10 years agoclang/test/Sema/struct-packed-align.c: Add the case in MS mode that alignment doesn...
NAKAMURA Takumi [Mon, 4 Aug 2014 22:48:19 +0000 (22:48 +0000)]
clang/test/Sema/struct-packed-align.c: Add the case in MS mode that alignment doesn't affect packing.

Also, revert a couple of suppressions.
  r214298, "Suppress clang/test/Sema/struct-packed-align.c for targeting LLP64."
  r214301, "Suppress clang/test/Sema/struct-packed-align.c also on msvc for investigating."

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

10 years agoTrailing linefeed.
NAKAMURA Takumi [Mon, 4 Aug 2014 22:48:09 +0000 (22:48 +0000)]
Trailing linefeed.

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

10 years agoRemove separator parameter from static local naming code
Reid Kleckner [Mon, 4 Aug 2014 22:35:30 +0000 (22:35 +0000)]
Remove separator parameter from static local naming code

It was always set to ".", which was duplicated in a few places.

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

10 years agoThread Safety Analysis: add a -Wthread-safety-negative flag that warns whenever
DeLesley Hutchins [Mon, 4 Aug 2014 22:13:06 +0000 (22:13 +0000)]
Thread Safety Analysis: add a -Wthread-safety-negative flag that warns whenever
a mutex is acquired, but corresponding mutex is not provably not-held.  This
is based on the earlier negative requirements patch.

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

10 years agoUpdate for LLVM API change.
Eric Christopher [Mon, 4 Aug 2014 21:33:42 +0000 (21:33 +0000)]
Update for LLVM API change.

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

10 years agoUsersManual: update clang-cl options
Hans Wennborg [Mon, 4 Aug 2014 21:07:58 +0000 (21:07 +0000)]
UsersManual: update clang-cl options

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

10 years agoDon't drop dllimport from qualified friend redeclarations (PR20512)
Hans Wennborg [Mon, 4 Aug 2014 20:54:39 +0000 (20:54 +0000)]
Don't drop dllimport from qualified friend redeclarations (PR20512)

This matches MSVC's logic, which seems to be that when the friend
declaration is qualified, it cannot be a declaration of a new symbol
and so the dll linkage doesn't change.

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

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

10 years agoNit picky const-correctness with auto. No functional changes.
Aaron Ballman [Mon, 4 Aug 2014 20:49:47 +0000 (20:49 +0000)]
Nit picky const-correctness with auto. No functional changes.

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

10 years agoA static_assert declaration cannot be a template; adding the diagnostic for this...
Aaron Ballman [Mon, 4 Aug 2014 20:28:35 +0000 (20:28 +0000)]
A static_assert declaration cannot be a template; adding the diagnostic for this instead of silently accepting and producing possibly-unexpected behavior.

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

10 years agoRevert r214757 (Same fix as r214758)
Alex Lorenz [Mon, 4 Aug 2014 19:04:38 +0000 (19:04 +0000)]
Revert r214757 (Same fix as r214758)

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

10 years agoAdd CoverageMappingGen.cpp (introduced in r214752) to CMakeLists.txt
David Blaikie [Mon, 4 Aug 2014 18:59:39 +0000 (18:59 +0000)]
Add CoverageMappingGen.cpp (introduced in r214752) to CMakeLists.txt

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

10 years agoadd lib/CodeGen/CoverageMappingGen.cpp to CMake
Alex Lorenz [Mon, 4 Aug 2014 18:55:53 +0000 (18:55 +0000)]
add lib/CodeGen/CoverageMappingGen.cpp to CMake

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

10 years agoAdd coverage mapping generation.
Alex Lorenz [Mon, 4 Aug 2014 18:41:51 +0000 (18:41 +0000)]
Add coverage mapping generation.

This patch adds the '-fcoverage-mapping' option which
allows clang to generate the coverage mapping information
that can be used to provide code coverage analysis using
the execution counts obtained from the instrumentation
based profiling (-fprofile-instr-generate).

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

10 years agoRemoving some extraneous spaces; no functional changes intended.
Aaron Ballman [Mon, 4 Aug 2014 17:49:55 +0000 (17:49 +0000)]
Removing some extraneous spaces; no functional changes intended.

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

10 years agoFix crash when accessing a property of an invalid interface
Olivier Goffart [Mon, 4 Aug 2014 17:28:11 +0000 (17:28 +0000)]
Fix crash when accessing a property of an invalid interface

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

10 years agoFix crash when assiging to a property with an invalid type
Olivier Goffart [Mon, 4 Aug 2014 17:28:05 +0000 (17:28 +0000)]
Fix crash when assiging to a property with an invalid type

This is a regression from clang 3.4

Set the result to ExprError and returns true, rather than simply
returns false because errors have been reported already and returning
false show a confusing error

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

10 years agoDiagnose GNU-style attributes preceding virt-specifiers, but only when the attribute...
Aaron Ballman [Mon, 4 Aug 2014 17:03:51 +0000 (17:03 +0000)]
Diagnose GNU-style attributes preceding virt-specifiers, but only when the attribute is known to GCC. Clang accepts attributes in this position, but
GCC does not, so this is a GCC-compat warning. If the attribute is not known to GCC, then the diagnostic is suppressed.

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

10 years agoThread safety analysis: Add support for negative requirements, which are
DeLesley Hutchins [Mon, 4 Aug 2014 16:10:59 +0000 (16:10 +0000)]
Thread safety analysis:  Add support for negative requirements, which are
capability expressions of the form !expr, and denote a capability that must
not be held.

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

10 years agoHighlight the offending function parameter when the format argument refers to an...
Aaron Ballman [Mon, 4 Aug 2014 15:26:33 +0000 (15:26 +0000)]
Highlight the offending function parameter when the format argument refers to an invalid function parameter type.

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

10 years agoHighlight the offending function parameter when the format_arg argument refers to...
Aaron Ballman [Mon, 4 Aug 2014 15:17:29 +0000 (15:17 +0000)]
Highlight the offending function parameter when the format_arg argument refers to an invalid function parameter type.

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

10 years agoclang-format: Understand parameter pack initialization.
Daniel Jasper [Mon, 4 Aug 2014 14:51:02 +0000 (14:51 +0000)]
clang-format: Understand parameter pack initialization.

Before:
  Constructor(A... a) : a_(X<A> { std::forward<A>(a) }...) {}

After:
  Constructor(A... a) : a_(X<A>{std::forward<A>(a)}...) {}

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

10 years ago[Driver][Mips] Construct dynamic linker path by string concatination.
Simon Atanasyan [Mon, 4 Aug 2014 12:57:52 +0000 (12:57 +0000)]
[Driver][Mips] Construct dynamic linker path by string concatination.
That reduces a number of `if` operators and prevent a combinatorics explosion
if/when more dynamic linker path variants added.

No functional changes.

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

10 years ago[x32] Add __int128 support
Pavel Chupin [Mon, 4 Aug 2014 12:39:43 +0000 (12:39 +0000)]
[x32] Add __int128 support

Summary:
Adding __int128 support explicitly for x86_64 because currently it's on
only when pointer size >= 64 which is not the case for x32.

Test Plan: One of the tests using __int128 is updated

Reviewers: atanasyan, chandlerc

Subscribers: cfe-commits, rob.khasanov, zinovy.nis, dschuff

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

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

10 years agoFix tests Clang::Sema/statements.c and Clang::SemaTemplate/instantiate-expr-1.cpp...
Keith Walker [Mon, 4 Aug 2014 10:13:09 +0000 (10:13 +0000)]
Fix tests Clang::Sema/statements.c and Clang::SemaTemplate/instantiate-expr-1.cpp when AArch64 is the default target.

Commit r213935 added additional validation of register constants/size for AArch64 and because these tests which contain Intel assembler the new validation caused these tests to fail when the default target is changed to an AArch64 target.

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

10 years agoAST: Fix the mangling for unqualified-blocks
David Majnemer [Mon, 4 Aug 2014 06:16:50 +0000 (06:16 +0000)]
AST: Fix the mangling for unqualified-blocks

CXXNameMangler::mangleUnqualifiedBlock believed that
MangleContext::getBlockId returned something that used Itanium-style
discriminator numbers.

Discriminator numbers start their numberign from 1 and the first
mangling that actually gets any sort of number mangled in is the second
discriminator.

However, Block IDs start from zero.  The logic for omitting the mangling
number did a ' > 1' instead of a ' > 0' comparison; this could
potentially cause mangling conflicts.

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

10 years agoAST: Propagate 'AlignIsRequired' though many levels of typedefs
David Majnemer [Mon, 4 Aug 2014 05:11:01 +0000 (05:11 +0000)]
AST: Propagate 'AlignIsRequired' though many levels of typedefs

A typedef of a typedef should have AlignIsRequired if *either* typedef
has an AlignAttr attached to it.

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