]> granicus.if.org Git - clang/log
clang
10 years agoTest commit for the user "kromanova" to verify commit access. I removed "UNSUPPORTED...
Ekaterina Romanova [Thu, 21 Nov 2013 22:25:24 +0000 (22:25 +0000)]
Test commit for the user "kromanova" to verify commit access. I removed "UNSUPPORTED" comment because unsigned __int128 type is in fact supported.

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

10 years agoObjectiveC. Implement attribute 'objc_bridge_mutable'
Fariborz Jahanian [Thu, 21 Nov 2013 20:50:32 +0000 (20:50 +0000)]
ObjectiveC. Implement attribute 'objc_bridge_mutable'
whose semantic is currently identical to objc_bridge,
but their differences may manifest down the road with
further enhancements. // rdar://15498044

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

10 years agoObjectiveC migrator. delegate property must be
Fariborz Jahanian [Thu, 21 Nov 2013 17:49:34 +0000 (17:49 +0000)]
ObjectiveC migrator. delegate property must be
inferred as 'assign', not 'assign' and 'strong'.
// rdar://15509831

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

10 years agoFix a crash in EmitStoreThroughExtVectorComponentLValue for vectors of odd sizes.
Joey Gouly [Thu, 21 Nov 2013 17:09:05 +0000 (17:09 +0000)]
Fix a crash in EmitStoreThroughExtVectorComponentLValue for vectors of odd sizes.

In OpenCL a vector of 3 elements, acts like a vector of four elements.
So for a vector of size 3 the '.hi' and '.odd' accessors, would access
the elements {2, 3} and {1, 3} respectively.
However, in EmitStoreThroughExtVectorComponentLValue we are still operating on
a vector of size 3, so we should only access {2} and {1}. We do this by checking
the last element to be accessed, and ignore it if it is out-of-bounds.

EmitLoadOfExtVectorElementLValue doesn't have a similar problem, because it does
a direct shufflevector with undef, so an out-of-bounds access just gives an undef
value.

Patch by Anastasia Stulova!

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

10 years agoAdded testcase for r195255.
Enea Zaffanella [Thu, 21 Nov 2013 16:43:28 +0000 (16:43 +0000)]
Added testcase for r195255.

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

10 years ago[ARM] add basic support for Cortex-A7 and VFPv4 to Clang
Artyom Skrobov [Thu, 21 Nov 2013 14:04:38 +0000 (14:04 +0000)]
[ARM] add basic support for Cortex-A7 and VFPv4 to Clang

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

10 years agoBetter implementation of JavaScript === and !== operators.
Alexander Kornienko [Thu, 21 Nov 2013 12:43:57 +0000 (12:43 +0000)]
Better implementation of JavaScript === and !== operators.

Summary:
Now based on token merging. Now they are not only prevented from being
split, but are actually formatted as comparison operators.

Reviewers: djasper, klimek

Reviewed By: klimek

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2240

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

10 years agoARM: define & use __ARM_NEON on ARM32 (as per ACLE)
Tim Northover [Thu, 21 Nov 2013 12:36:34 +0000 (12:36 +0000)]
ARM: define & use __ARM_NEON on ARM32 (as per ACLE)

There seem to be quite a few references to the old macro __ARM_NEON__ on the
internet, so I don't think it's a good idea to remove it entirely (at least
yet), but the canonical name does not have the trailing underscores so we
should use that ourselves.

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

10 years agoImplemented Neon scalar vdup_lane intrinsics.
Ana Pazos [Thu, 21 Nov 2013 08:15:01 +0000 (08:15 +0000)]
Implemented Neon scalar vdup_lane intrinsics.

Fixed scalar dup alias and added test case.

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

10 years agoRevert "Add new attribute 'objc_suppress_protocol' to suppress protocol conformance...
Ted Kremenek [Thu, 21 Nov 2013 07:57:53 +0000 (07:57 +0000)]
Revert "Add new attribute 'objc_suppress_protocol' to suppress protocol conformance for a class."

After implementing this patch, a few concerns about the language
feature itself emerged in my head that I had previously not considered.
I want to resolve those design concerns first before having
a half-designed language feature in the tree.

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

10 years agoImplemented Neon scalar by element intrinsics.
Ana Pazos [Thu, 21 Nov 2013 07:36:33 +0000 (07:36 +0000)]
Implemented Neon scalar by element intrinsics.

Intrinsics implemented: vqdmull_lane, vqdmulh_lane, vqrdmulh_lane,
vqdmlal_lane, vqdmlsl_lane scalar Neon intrinsics.

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

10 years agoAdd new attribute 'objc_suppress_protocol' to suppress protocol conformance for a...
Ted Kremenek [Thu, 21 Nov 2013 07:20:42 +0000 (07:20 +0000)]
Add new attribute 'objc_suppress_protocol' to suppress protocol conformance for a class.

The idea is to allow a class to stipulate that its methods (and those
of its parents) cannot be used for protocol conformance in a subclass.
A subclass is then explicitly required to re-implement those methods
of they are present in the class marked with this attribute.

Currently the attribute can only be applied to an @interface, and
not a category or class extension.  This is by design.  Unlike
protocol conformance, where a category can add explicit conformance
of a protocol to class, this anti-conformance really needs to be
observed uniformly by all clients of the class.  That's because
the absence of the attribute implies more permissive checking of
protocol conformance.

This unfortunately required changing method lookup in ObjCInterfaceDecl
to take an optional protocol parameter.  This should not slow down
method lookup in most cases, and is just used for protocol conformance.

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

10 years agoRefactor some of handleObjCBridgeAttr to make it more concise and the diagnostic...
Ted Kremenek [Thu, 21 Nov 2013 07:20:34 +0000 (07:20 +0000)]
Refactor some of handleObjCBridgeAttr to make it more concise and the diagnostic reusable.

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

10 years agoProvide better diagnostic wording for initializers on static
Hans Wennborg [Thu, 21 Nov 2013 03:17:44 +0000 (03:17 +0000)]
Provide better diagnostic wording for initializers on static
data member definitions when the variable has an initializer
in its declaration.

For the following code:

  struct S {
    static const int x = 42;
  };
  const int S::x = 42;

This patch changes the diagnostic from:

  a.cc:4:14: error: redefinition of 'x'
  const int S::x = 42;
               ^
  a.cc:2:20: note: previous definition is here
    static const int x = 42;
                     ^
to:

  a.cc:4:18: error: static data member 'x' already has an initializer
  const int S::x = 42;
                   ^
  a.cc:2:24: note: previous initialization is here
    static const int x = 42;
                         ^

Differential Revision: http://llvm-reviews.chandlerc.com/D2235

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

10 years agoPR10837: Warn if a null pointer constant is formed by a zero integer constant
Richard Smith [Thu, 21 Nov 2013 01:53:02 +0000 (01:53 +0000)]
PR10837: Warn if a null pointer constant is formed by a zero integer constant
expression that is not a zero literal, in C. This is a different, and more
targeted, approach than that in r194540.

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

10 years agoRefactored integer argument checking code into a helper method. Removes a considerabl...
Aaron Ballman [Thu, 21 Nov 2013 01:50:40 +0000 (01:50 +0000)]
Refactored integer argument checking code into a helper method. Removes a considerable amount of duplicated code.

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

10 years agoclang-format: Improve formatting of ObjC method expressions.
Daniel Jasper [Thu, 21 Nov 2013 01:46:33 +0000 (01:46 +0000)]
clang-format: Improve formatting of ObjC method expressions.

In particular, make breaking after a parameter's ":" more of a last
resort choice as it significantly affects the readability gained by
aligning the parameters.

Before (in Chromium style - which doesn't allow bin-packing):
  {
    popup_window_.reset([[RenderWidgetPopupWindow alloc]
        initWithContentRect:
            NSMakeRect(
                origin_global.x, origin_global.y, pos.width(), pos.height())
                  styleMask:NSBorderlessWindowMask
                    backing:NSBackingStoreBuffered
                      defer:NO]);
  }

After:
  {
    popup_window_.reset([[RenderWidgetPopupWindow alloc]
        initWithContentRect:NSMakeRect(origin_global.x,
                                       origin_global.y,
                                       pos.width(),
                                       pos.height())
                  styleMask:NSBorderlessWindowMask
                    backing:NSBackingStoreBuffered
                      defer:NO]);
  }

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

10 years agoObjectiveC migrator. use strong instead of
Fariborz Jahanian [Thu, 21 Nov 2013 00:58:17 +0000 (00:58 +0000)]
ObjectiveC migrator. use strong instead of
retain attribute for inferred properties.
// rdar://15519923

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

10 years agoObjectiveC. Allow toll free bridge cast warnings outside
Fariborz Jahanian [Thu, 21 Nov 2013 00:39:36 +0000 (00:39 +0000)]
ObjectiveC. Allow toll free bridge cast warnings outside
ARC and in objectiveC/ObjectiveC++ MRR mode as well.
// rdar://15454846

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

10 years agoImplemented DefaultIntArgument in the table generator and start using it in semantic...
Aaron Ballman [Thu, 21 Nov 2013 00:28:23 +0000 (00:28 +0000)]
Implemented DefaultIntArgument in the table generator and start using it in semantic analysis. Removes some magic numbers.

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

10 years ago[-cxx-abi microsoft] Emit linkonce_odr definitions for declarations of static data...
Hans Wennborg [Thu, 21 Nov 2013 00:15:56 +0000 (00:15 +0000)]
[-cxx-abi microsoft] Emit linkonce_odr definitions for declarations of static data members with inline initializers (PR17689)

This makes Clang emit a linkonce_odr definition for 'val' in the code below,
to be compatible with MSVC-compiled code:

  struct Foo {
    static const int val = 1;
  };

Differential Revision: http://llvm-reviews.chandlerc.com/D2233

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

10 years agoFix new check for missing semicolon after struct definition to deal with the
Richard Smith [Wed, 20 Nov 2013 23:40:57 +0000 (23:40 +0000)]
Fix new check for missing semicolon after struct definition to deal with the
case where the type in the following declaration is specified as a template-id,
and refactor for clarity.

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

10 years agoObjectiveC ARC. warn in presense of __bridge casting to
Fariborz Jahanian [Wed, 20 Nov 2013 22:55:41 +0000 (22:55 +0000)]
ObjectiveC ARC. warn in presense of __bridge casting to
or from a toll free bridge cast. // rdar://15454846

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

10 years agoThere is no such thing as __declspec(ms_struct), this is a GNU attribute. Switched...
Aaron Ballman [Wed, 20 Nov 2013 22:22:04 +0000 (22:22 +0000)]
There is no such thing as __declspec(ms_struct), this is a GNU attribute. Switched the attribute to have the proper spelling, gave it a subject, updated the warning to be more accurate, and updated the test case as appropriate.

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

10 years agoRemoved a duplicate diagnostic related to attribute subjects for thread safety annota...
Aaron Ballman [Wed, 20 Nov 2013 21:41:42 +0000 (21:41 +0000)]
Removed a duplicate diagnostic related to attribute subjects for thread safety annotations, and replaced it with the more general attribute diagnostic. Updated the test case in the one instance where wording changed. No functional change intended.

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

10 years agoUpdated the thread safety attribute definitions to have subjects defined. These are...
Aaron Ballman [Wed, 20 Nov 2013 21:40:13 +0000 (21:40 +0000)]
Updated the thread safety attribute definitions to have subjects defined. These are based off what SemaDeclAttr.cpp is checking for in terms of diagnostic reporting. No functional change intended.

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

10 years ago[NVPTX] Update ABI handling
Justin Holewinski [Wed, 20 Nov 2013 20:35:34 +0000 (20:35 +0000)]
[NVPTX] Update ABI handling

For PTX, we want the target to handle struct returns directly.

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

10 years agoSet default Dwarf Version for -gline-tables-only on Darwin to 2.
Manman Ren [Wed, 20 Nov 2013 20:22:14 +0000 (20:22 +0000)]
Set default Dwarf Version for -gline-tables-only on Darwin to 2.

We are still using Dwarf Version 2 for Darwin systems, make it consistent
with -gline-tables-only.

This should fix an internal buildbot.

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

10 years agoObjectiveC ARC. Better checking of toll free briding
Fariborz Jahanian [Wed, 20 Nov 2013 19:01:50 +0000 (19:01 +0000)]
ObjectiveC ARC. Better checking of toll free briding
from qualified-id objects to CF types with
objc_bridge annotation. // rdar://15454846

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

10 years agoRefine 'deprecated' checking for Objective-C classes/methods.
Ted Kremenek [Wed, 20 Nov 2013 17:24:03 +0000 (17:24 +0000)]
Refine 'deprecated' checking for Objective-C classes/methods.

- If a deprecated class refers to another deprecated class, do not warn.
- @implementations of a deprecated class can refer to other deprecated things.

Fixes <rdar://problem/15407366> and <rdar://problem/15466783>.

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

10 years agoAdded an option to allow short function bodies be placed on a single line.
Alexander Kornienko [Wed, 20 Nov 2013 16:33:05 +0000 (16:33 +0000)]
Added an option to allow short function bodies be placed on a single line.

Summary:
The AllowShortFunctionsOnASingleLine option now controls short function
body placement on a single line independent of the BreakBeforeBraces option.
Updated tests using BreakBeforeBraces other than BS_Attach.

Addresses http://llvm.org/PR17888

Reviewers: klimek, djasper

Reviewed By: klimek

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2230

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

10 years agoWhen wrapping lazily generated builtins in an extern "C" context,
Enea Zaffanella [Wed, 20 Nov 2013 15:41:05 +0000 (15:41 +0000)]
When wrapping lazily generated builtins in an extern "C" context,
flag the LinkageSpecDecl as being implicitly generated too.

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

10 years agoSimplify fix proposed in r195240.
Daniel Jasper [Wed, 20 Nov 2013 14:54:39 +0000 (14:54 +0000)]
Simplify fix proposed in r195240.

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

10 years agoSupport for JavaScript === and !== operators.
Alexander Kornienko [Wed, 20 Nov 2013 14:30:26 +0000 (14:30 +0000)]
Support for JavaScript === and !== operators.

Reviewers: klimek, djasper

Reviewed By: klimek

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2231

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

10 years ago[Mips] Take in account the -mfp64 command line option when build paths
Simon Atanasyan [Wed, 20 Nov 2013 13:53:20 +0000 (13:53 +0000)]
[Mips] Take in account the -mfp64 command line option when build paths
to the crt*.o files, libraries and headers for the MIPS FSFS toolchain.

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

10 years agoFix bug where optimization would lead to strange line breaks.
Manuel Klimek [Wed, 20 Nov 2013 11:20:32 +0000 (11:20 +0000)]
Fix bug where optimization would lead to strange line breaks.

Before:
  void f() {
    CHECK_EQ(aaaa, (
                       *bbbbbbbbb)->cccccc)
        << "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq";
  }

After:
  void f() {
    CHECK_EQ(aaaa, (*bbbbbbbbb)->cccccc)
        << "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq";
  }

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

10 years agoUpdate to next release numbers.
Bill Wendling [Wed, 20 Nov 2013 10:13:37 +0000 (10:13 +0000)]
Update to next release numbers.

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

10 years agoRemoving a custom error diagnostic and replacing it with a stock one. Added a test...
Aaron Ballman [Wed, 20 Nov 2013 01:35:23 +0000 (01:35 +0000)]
Removing a custom error diagnostic and replacing it with a stock one. Added a test case to ensure the diagnostic was firing properly.

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

10 years agoComment parsing tests: introduce a little more structure in testcase
Dmitri Gribenko [Wed, 20 Nov 2013 01:23:26 +0000 (01:23 +0000)]
Comment parsing tests: introduce a little more structure in testcase

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

10 years agoEnsuring the warning for attribute decl types matches the error for attribute decl...
Aaron Ballman [Wed, 20 Nov 2013 01:14:35 +0000 (01:14 +0000)]
Ensuring the warning for attribute decl types matches the error for attribute decl types.

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

10 years agoRevert r195176, it is breaking buildbots for unclear reason
Dmitri Gribenko [Wed, 20 Nov 2013 00:59:02 +0000 (00:59 +0000)]
Revert r195176, it is breaking buildbots for unclear reason

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

10 years agoObjectiveC ARC. validate toll free bridge casting
Fariborz Jahanian [Wed, 20 Nov 2013 00:32:12 +0000 (00:32 +0000)]
ObjectiveC ARC. validate toll free bridge casting
to or from 'id' and qualified-id types.
// rdar://15454846

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

10 years agoComment parsing tests: introduce a little more structure in testcase
Dmitri Gribenko [Wed, 20 Nov 2013 00:15:58 +0000 (00:15 +0000)]
Comment parsing tests: introduce a little more structure in testcase

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

10 years ago[analyzer] Fix an infinite recursion in region invalidation by adding block count...
Anna Zaks [Wed, 20 Nov 2013 00:11:42 +0000 (00:11 +0000)]
[analyzer] Fix an infinite recursion in region invalidation by adding block count to the BlockDataRegion.

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

10 years agoAdd a mangler entry point for TBAA rather than using RTTI directly
Reid Kleckner [Tue, 19 Nov 2013 23:23:00 +0000 (23:23 +0000)]
Add a mangler entry point for TBAA rather than using RTTI directly

Summary:
RTTI is not yet implemented for the Microsoft C++ ABI and isn't expected
soon.  We could easily add the mangling, but the error is what prevents
us from silently miscompiling code that expects RTTI.

Instead, add a new mangleTypeName entry point that simply forwards to
mangleName or mangleType to produce a string that isn't part of the ABI.
Itanium can continue to use RTTI names to avoid unecessary test
breakage.

This also seems like the right design.  The fact that TBAA names happen
to be RTTI names is now an implementation detail of the mangler, rather
than part of TBAA.

Differential Revision: http://llvm-reviews.chandlerc.com/D2153

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

10 years agoPR9547: If we're parsing a simple-declaration that contains a tag definition,
Richard Smith [Tue, 19 Nov 2013 22:47:36 +0000 (22:47 +0000)]
PR9547: If we're parsing a simple-declaration that contains a tag definition,
and we see an ill-formed declarator that would probably be well-formed if the
tag definition were just missing a semicolon, use that as the diagnostic
instead of producing some other mysterious error.

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

10 years agoSwitching some string literals to be generated by the AttributeList object itself.
Aaron Ballman [Tue, 19 Nov 2013 22:18:24 +0000 (22:18 +0000)]
Switching some string literals to be generated by the AttributeList object itself.

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

10 years agoMicrosoft Record Layout: zero sized base after base with vbtbl fix
Warren Hunt [Tue, 19 Nov 2013 22:11:09 +0000 (22:11 +0000)]
Microsoft Record Layout: zero sized base after base with vbtbl fix

Microsoft adds an extra byte of padding before laying out zero sized
non-virtual bases if the non-virtual base before it contains a vbptr.
This patch adds the same behavior to clang.

Differential Revision: http://llvm-reviews.chandlerc.com/D2106

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

10 years agoFurther fixes when thiscall is the default for methods.
Rafael Espindola [Tue, 19 Nov 2013 21:07:04 +0000 (21:07 +0000)]
Further fixes when thiscall is the default for methods.

The previous patches tried to deduce the correct function type. I now realize
this is not possible in general. Consider

class foo {
    template <typename T> static void bar(T v);
};
extern template void foo::bar(const void *);

We will only know that bar is static after a lookup, so we have to handle this
in the template instantiation code.

This patch reverts my previous two changes (but not the tests) and instead
handles the issue in DeduceTemplateArguments.

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

10 years agoARM: embedded v7 'darwin' doesn't get min-version defines.
Jim Grosbach [Tue, 19 Nov 2013 20:18:39 +0000 (20:18 +0000)]
ARM: embedded v7 'darwin' doesn't get min-version defines.

Make sure armv7 doesn't get the iOS deployment version definitions when
it's being used for non-iOS.

rdar://15497681

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

10 years agoRemove full path from CHECK line
Dmitri Gribenko [Tue, 19 Nov 2013 19:29:32 +0000 (19:29 +0000)]
Remove full path from CHECK line

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

10 years agoObjectiveC ARC. Removes a bogus warning when a weak
Fariborz Jahanian [Tue, 19 Nov 2013 19:26:30 +0000 (19:26 +0000)]
ObjectiveC ARC. Removes a bogus warning when a weak
property is redeclared as 'weak' in class extension.
// rdar://15465916

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

10 years agoDocumentation parsing: in HeaderDoc, \abstract is equivalent to \brief
Dmitri Gribenko [Tue, 19 Nov 2013 19:18:54 +0000 (19:18 +0000)]
Documentation parsing: in HeaderDoc, \abstract is equivalent to \brief

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

10 years agoObjectiveC migrator. Do not migrate categories with
Fariborz Jahanian [Tue, 19 Nov 2013 18:17:31 +0000 (18:17 +0000)]
ObjectiveC migrator. Do not migrate categories with
'Deprecated' name suffix.

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

10 years agobjectiveC. Use a uniform diagnostic for
Fariborz Jahanian [Tue, 19 Nov 2013 17:42:25 +0000 (17:42 +0000)]
bjectiveC. Use a uniform diagnostic for
'objc_bridge' attribute. // rdar://15454846.

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

10 years agoYAML I/O - Added default trait support for std:string. Making another attempt at...
John Thompson [Tue, 19 Nov 2013 17:28:21 +0000 (17:28 +0000)]
YAML I/O - Added default trait support for std:string.  Making another attempt at this, this time doing a clean build on Linux, and running the LLVM, clang, and extra tests, to try to make sure there's no problems.

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

10 years agoRefactoring: replaced (*(I + x)) with I[x].
Alexander Kornienko [Tue, 19 Nov 2013 14:30:44 +0000 (14:30 +0000)]
Refactoring: replaced (*(I + x)) with I[x].

Summary: Pure refactoring, no semantic changes intended.

Reviewers: klimek

Reviewed By: klimek

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2220

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

10 years agoChange VariadicOperatorMatcherInterface<> to take an ArrayRef<DynTypedMatcher>.
Samuel Benzaquen [Tue, 19 Nov 2013 14:17:28 +0000 (14:17 +0000)]
Change VariadicOperatorMatcherInterface<> to take an ArrayRef<DynTypedMatcher>.

Summary:
Change VariadicOperatorMatcherInterface<> to take an ArrayRef<DynTypedMatcher>.
This simplifies its implementation and use.
Also reduces the number of symbols in Registry.cpp.o, which we are always in need.

Reviewers: klimek

CC: cfe-commits, revane, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2216

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

10 years agoRevert r194540, it breaks various C++ programs.
Joerg Sonnenberger [Tue, 19 Nov 2013 13:38:38 +0000 (13:38 +0000)]
Revert r194540, it breaks various C++ programs.

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

10 years ago[Mips] Do not adjust float-abi flags in case of MIPS16 mode. This code
Simon Atanasyan [Tue, 19 Nov 2013 12:22:38 +0000 (12:22 +0000)]
[Mips] Do not adjust float-abi flags in case of MIPS16 mode. This code
should be isolated in the backend (r195123). From the frontend point
of view in case of "-mhard-float -mips16" combination of flags the float
ABI mode should remain unchanged.

The patch reviewed by Reed Kotler.

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

10 years agoGiving this test a triple since it uses a calling convention attribute.
Aaron Ballman [Tue, 19 Nov 2013 04:25:20 +0000 (04:25 +0000)]
Giving this test a triple since it uses a calling convention attribute.

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

10 years agoImproving calling convention test coverage by adding tests for things not currently...
Aaron Ballman [Tue, 19 Nov 2013 04:08:34 +0000 (04:08 +0000)]
Improving calling convention test coverage by adding tests for things not currently handled. Specifically: the diagnostics in SemaDeclAttr.cpp, and ensuring that calling convention attributes are applied to ObjC method declarations. No functional changes.

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

10 years agoAdding subjects to calling convention attributes. No functional changes intended.
Aaron Ballman [Tue, 19 Nov 2013 04:01:06 +0000 (04:01 +0000)]
Adding subjects to calling convention attributes. No functional changes intended.

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

10 years agoRename an extension warning to ext_...
Richard Smith [Tue, 19 Nov 2013 03:41:32 +0000 (03:41 +0000)]
Rename an extension warning to ext_...

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

10 years agoDisable this check temporarily.
Bill Wendling [Tue, 19 Nov 2013 02:25:28 +0000 (02:25 +0000)]
Disable this check temporarily.

This is failing for me. When I run the command on my own, I get this:

Error reading /usr/local/google/home/morbo/llvm/llvm.obj/tools/clang/test/Format/Output/.clang-format: Invalid argument
void f() {
  int* i;
  int j;
}

The formatting is like this because I have the Google format version in my
~/.clang-format file. This test should be made independent of that.

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

10 years agoImplement AArch64 neon instructions class SIMD lsone and SIMD lone-post.
Hao Liu [Tue, 19 Nov 2013 02:17:31 +0000 (02:17 +0000)]
Implement AArch64 neon instructions class SIMD lsone and SIMD lone-post.

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

10 years agoImplement AArch64 SISD intrinsics for vget_high and vget_low.
Jiangning Liu [Tue, 19 Nov 2013 01:46:34 +0000 (01:46 +0000)]
Implement AArch64 SISD intrinsics for vget_high and vget_low.

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

10 years agoObjectiveC objc_bridge. Minor refactoring.
Fariborz Jahanian [Tue, 19 Nov 2013 01:38:23 +0000 (01:38 +0000)]
ObjectiveC objc_bridge. Minor refactoring.
// rdar://15454846

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

10 years agoAdd predicate for AArch64 crypto instructions.
Jiangning Liu [Tue, 19 Nov 2013 01:38:19 +0000 (01:38 +0000)]
Add predicate for AArch64 crypto instructions.

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

10 years agoClean up predefined macros for AArch64 to follow ACLE 2.0.
Jiangning Liu [Tue, 19 Nov 2013 01:33:17 +0000 (01:33 +0000)]
Clean up predefined macros for AArch64 to follow ACLE 2.0.

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

10 years agoObjectiveC 'objc_bridging'. Assorment of improvements
Fariborz Jahanian [Tue, 19 Nov 2013 01:23:07 +0000 (01:23 +0000)]
ObjectiveC 'objc_bridging'. Assorment of improvements
per Doug/Jordan comments. // rdar://15454846.

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

10 years agoObjectiveC ARC. Adopt objc_bridge attribute
Fariborz Jahanian [Tue, 19 Nov 2013 00:09:48 +0000 (00:09 +0000)]
ObjectiveC ARC. Adopt objc_bridge attribute
on struct/union/class instead of typedef of
such types. // rdar://15454846

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

10 years agoDebugInfo: Update caller based on DIType's MDNode* ctor becoming explicit in r195055.
David Blaikie [Mon, 18 Nov 2013 23:38:26 +0000 (23:38 +0000)]
DebugInfo: Update caller based on DIType's MDNode* ctor becoming explicit in r195055.

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

10 years agoChange the clang driver with the use of -no-integrated-as for darwin to use
Kevin Enderby [Mon, 18 Nov 2013 23:30:29 +0000 (23:30 +0000)]
Change the clang driver with the use of -no-integrated-as for darwin to use
the -Q flag to the as(1) assembler driver.

We will soon be switching the darwin as(1) assembler driver to call clang(1)
and use the intergated assembler by default.  To do this and still support
clang(1)'s -no-integrated-as flag, when clang(1) runs the as(1) assembler
driver and -no-integrated-as is used it needs to pass the -Q flag to as(1)
so it uses its GNU based assembler, and not turn around and call clag(1)'s
integrated assembler.

rdar://15495921

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

10 years agoThe attached patch is a follow up from my previous one. The existing
Rafael Espindola [Mon, 18 Nov 2013 22:40:04 +0000 (22:40 +0000)]
The attached patch is a follow up from my previous one. The existing
logic was not handling typedefs as free functions. This was not
causing problems with the existing tests, but does with the microsoft
abi where they have to get a different calling convention.

I will try to refactor this into a method on Declarator in a second.

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

10 years agoRemove period at end of "optimization level is unsupported" diagnostic
Hans Wennborg [Mon, 18 Nov 2013 22:10:17 +0000 (22:10 +0000)]
Remove period at end of "optimization level is unsupported" diagnostic

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

10 years agoMake test/Driver/clang_f_opts.c not write to the test dir
Hans Wennborg [Mon, 18 Nov 2013 21:58:33 +0000 (21:58 +0000)]
Make test/Driver/clang_f_opts.c not write to the test dir

After r195009, the test would write a .o file to the test dir. Send that to
/dev/null instead. Also fix the typo in test/Frontend/invalid-o-level.c.

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

10 years agoThe code using the StmtPrinterHelper object failed to account for a null object in...
Aaron Ballman [Mon, 18 Nov 2013 20:11:50 +0000 (20:11 +0000)]
The code using the StmtPrinterHelper object failed to account for a null object in many cases, which could have led to crashes were it ever to be null. Now passing the object by reference instead of by pointer because it is never null in practice. No functional changes intended.

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

10 years agoUse the default method CC in GetFullTypeForDeclarator.
Rafael Espindola [Mon, 18 Nov 2013 20:05:33 +0000 (20:05 +0000)]
Use the default method CC in GetFullTypeForDeclarator.

Before this patch explicit template instatiations of member function templates
were failing with the microsoft abi and 32 bits. This was happening because
the expected and computed function types had different calling conventions.

This patch fixes it by considering the default calling convention in
GetFullTypeForDeclarator.

This fixes pr17973.

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

10 years agoRemove clang man page reference to --analyze, and point people to the analyzer website.
Ted Kremenek [Mon, 18 Nov 2013 18:53:37 +0000 (18:53 +0000)]
Remove clang man page reference to --analyze, and point people to the analyzer website.

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

10 years agoAdding an assert to help catch possible buffer underruns.
Aaron Ballman [Mon, 18 Nov 2013 18:29:00 +0000 (18:29 +0000)]
Adding an assert to help catch possible buffer underruns.

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

10 years agoMake helper function static.
Benjamin Kramer [Mon, 18 Nov 2013 16:50:24 +0000 (16:50 +0000)]
Make helper function static.

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

10 years agoAdd partial support for the hasDeclaration() matcher in the dynamic layer.
Samuel Benzaquen [Mon, 18 Nov 2013 14:53:42 +0000 (14:53 +0000)]
Add partial support for the hasDeclaration() matcher in the dynamic layer.

Summary:
Add partial support for the hasDeclaration() matcher in the dynamic layer.
This matcher has some special logic to allow any type that has a getDecl() method.  We do not support this right now.

Reviewers: klimek

CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D1889

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

10 years agoUsing an invalid -O falls back on -O3 instead of an error
Sylvestre Ledru [Mon, 18 Nov 2013 13:23:07 +0000 (13:23 +0000)]
Using an invalid -O falls back on -O3 instead of an error

Summary:
Currently with clang:
$ clang -O20 foo.c
error: invalid value '20' in '-O20'

With the patch:
$ clang -O20 foo.c
warning: optimization level '-O20' is unsupported; using '-O3' instead.
1 warning generated.

This matches the gcc behavior (with a warning added)

Pass all tests:
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
Testing Time: 94.14s
  Expected Passes    : 6721
  Expected Failures  : 20
  Unsupported Tests  : 17

(which was not the case of http://llvm-reviews.chandlerc.com/D2125)

Differential Revision: http://llvm-reviews.chandlerc.com/D2212

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

10 years agoclang/test/CXX/drs/dr2xx.cpp: Suppress this for targeting LLP64 due to __SIZE_TYPE__.
NAKAMURA Takumi [Mon, 18 Nov 2013 12:58:38 +0000 (12:58 +0000)]
clang/test/CXX/drs/dr2xx.cpp: Suppress this for targeting LLP64 due to __SIZE_TYPE__.

  Line 559: 'long long' is a C++11 extension
  Line 566: 'long long' is a C++11 extension
  Line 674: 'long long' is a C++11 extension

See also PR13819.

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

10 years agoclang/Parse/Parser.h: Fix annotations properly in SkipUntilFlags. [-Wdocumentation]
NAKAMURA Takumi [Mon, 18 Nov 2013 10:38:28 +0000 (10:38 +0000)]
clang/Parse/Parser.h: Fix annotations properly in SkipUntilFlags. [-Wdocumentation]

Use ///< after member.

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

10 years agoReplaced bool parameters in SkipUntil function with single bit-based parameter.
Alexey Bataev [Mon, 18 Nov 2013 08:17:37 +0000 (08:17 +0000)]
Replaced bool parameters in SkipUntil function with single bit-based parameter.

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

10 years agoclang/test/Tooling/multi-jobs.cpp: Mark this as XFAIL:msvc for now. It has been faili...
NAKAMURA Takumi [Mon, 18 Nov 2013 06:57:47 +0000 (06:57 +0000)]
clang/test/Tooling/multi-jobs.cpp: Mark this as XFAIL:msvc for now. It has been failing since r194968.

MSVC targeted drivers (*-win32) are incapable of invoking external assembler.

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

10 years agoImplement the newly added AArch64 ACLE functions for ld1/st1 with 2/3/4 vectors.
Hao Liu [Mon, 18 Nov 2013 06:33:43 +0000 (06:33 +0000)]
Implement the newly added AArch64 ACLE functions for ld1/st1 with 2/3/4 vectors.
The functions are like: vst1_s8_x2 ...

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

10 years agoTests for core issues 251-270.
Richard Smith [Mon, 18 Nov 2013 05:24:03 +0000 (05:24 +0000)]
Tests for core issues 251-270.

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

10 years agoRemove method that always returns true.
Rafael Espindola [Sun, 17 Nov 2013 22:42:24 +0000 (22:42 +0000)]
Remove method that always returns true.

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

10 years agoRemove two unused #ifdefs.
Rafael Espindola [Sun, 17 Nov 2013 22:36:07 +0000 (22:36 +0000)]
Remove two unused #ifdefs.

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

10 years agoRewriteBuffer::write(): Add a doc comment about non-portable use
Alp Toker [Sun, 17 Nov 2013 18:13:43 +0000 (18:13 +0000)]
RewriteBuffer::write(): Add a doc comment about non-portable use

The function isn't strictly at fault but there are callers using it
incorrectly, causing crashes with in-place edits of 64KB or larger files on
Windows.

See PR17960 for details.

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

10 years agoTooling/CompilationDatabase.cpp: Use \return here instead of \param[out]. [-Wdocument...
NAKAMURA Takumi [Sun, 17 Nov 2013 18:05:49 +0000 (18:05 +0000)]
Tooling/CompilationDatabase.cpp: Use \return here instead of \param[out]. [-Wdocumentation]

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

10 years agoRemove a bad string compare from r194968
Alp Toker [Sun, 17 Nov 2013 16:49:24 +0000 (16:49 +0000)]
Remove a bad string compare from r194968

  lib/Tooling/CompilationDatabase.cpp:275:34: warning: result of comparison against a string literal is unspecified (use strncmp instead) [-Wstring-compare]

This assert() should probably be fixed and added back at some point.

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

10 years agoRelax some preconditions for using FixedCompilationDatabase.
Edwin Vane [Sun, 17 Nov 2013 16:08:04 +0000 (16:08 +0000)]
Relax some preconditions for using FixedCompilationDatabase.

FixedCompilationDatabase (FCD) requires that the arguments it consumes after
'--' must not include positional parameters or the argv[0] of the tool. This
patch relaxes those restrictions.

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

10 years agoAdd -freroll-loops to enable loop rerolling
Hal Finkel [Sun, 17 Nov 2013 16:03:29 +0000 (16:03 +0000)]
Add -freroll-loops to enable loop rerolling

This adds -freroll-loops (and -fno-reroll-loops in the usual way) to enable
loop rerolling as part of the optimization pass manager. This transformation
can enable vectorization, reduce code size (or both).

Briefly, loop rerolling can transform a loop like this:

for (int i = 0; i < 3200; i += 5) {
  a[i]     += alpha * b[i];
  a[i + 1] += alpha * b[i + 1];
  a[i + 2] += alpha * b[i + 2];
  a[i + 3] += alpha * b[i + 3];
  a[i + 4] += alpha * b[i + 4];
}

into this:

for (int i = 0; i < 3200; ++i) {
  a[i] += alpha * b[i];
}

Loop rerolling is currently disabled by default at all optimization levels.

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

10 years agoFixes a typo and changes references to the function clang_displayDiagnostic (which...
Sylvestre Ledru [Sun, 17 Nov 2013 09:46:45 +0000 (09:46 +0000)]
Fixes a typo and changes references to the function clang_displayDiagnostic (which was removed in r96823) to clang_formatDiagnostics.

Patch by David Wiberg

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

10 years agoImplement vreinterpret ACLE functions in Clang.
Hao Liu [Sun, 17 Nov 2013 09:32:59 +0000 (09:32 +0000)]
Implement vreinterpret ACLE functions in Clang.

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

10 years ago[analyzer] Better modeling of memcpy by the CStringChecker (PR16731).
Anton Yartsev [Sun, 17 Nov 2013 09:18:48 +0000 (09:18 +0000)]
[analyzer] Better modeling of memcpy by the CStringChecker (PR16731).

New rules of invalidation/escape of the source buffer of memcpy: the source buffer contents is invalidated and escape while the source buffer region itself is neither invalidated, nor escape.
In the current modeling of memcpy the information about allocation state of regions, accessible through the source buffer, is not copied to the destination buffer and we can not track the allocation state of those regions anymore. So we invalidate/escape the source buffer indirect regions in anticipation of their being invalidated for real later. This eliminates false-positive leaks reported by the unix.Malloc and alpha.cplusplus.NewDeleteLeaks checkers for the cases like

char *f() {
  void *x = malloc(47);
  char *a;
  memcpy(&a, &x, sizeof a);
  return a;
}

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