| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
attribute on method declaration and implementation
match. This makes no sense. Most annotations are
meant for declarations only and one is for implementation.
This has been constant source of regresions and hackery to
get around special cases. I am removing this check.
Such checks must be done on a case by case basis and
when it makes sense. For example, it makes sense
for availability/deprecated and I will file a radar
for that. // rdar://15531984
llvm-svn: 195524
|
| |
|
|
| |
llvm-svn: 195503
|
| |
|
|
|
|
|
|
| |
available always-inline functions. This breaks libc++'s locale
implementation. Code generation for this case should be fixed, but this
is a stop gap fix for clang 3.4.
llvm-svn: 195501
|
| |
|
|
|
|
|
|
| |
info version number.
Will error out when modules have different version numbers.
llvm-svn: 195495
|
| |
|
|
|
|
| |
tranalation @protocol expression. // rdar://15517895
llvm-svn: 195480
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Add support for the 'unless' matcher in the dynamic layer.
Reviewers: klimek
CC: cfe-commits, revane, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2247
llvm-svn: 195466
|
| |
|
|
|
|
| |
Patch by Oliver Stannard!
llvm-svn: 195449
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Not long ago I made the CodeGen of for loops simplify the condition at
-O0 in the same way we do for if and conditionals. Unfortunately this
ties how loops and simple conditions work together too tightly, which
makes features such as instrumentation based PGO awkward.
Ultimately, we should find a more general way to simplify the logic in
a given condition, but for now we'll just avoid using EmitBranchOnBool
for loops, like we already do for while and do loops.
llvm-svn: 195438
|
| |
|
|
| |
llvm-svn: 195437
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
can't accidentally be allocated the wrong way (missing prefix data for decls
from AST files, for instance) and simplifies the CreateDeserialized functions a
little. An extra DeclContext* parameter to the not-from-AST-file operator new
allows us to ensure that we don't accidentally call the wrong one when
deserializing (when we don't have a DeclContext), allows some extra checks, and
prepares for some planned modules-related changes to Decl allocation.
No functionality change intended.
llvm-svn: 195426
|
| |
|
|
|
|
|
|
| |
Diags aren't usually in the first person, and 'windows' isn't the correct
product spelling to use in prose. Sidestep issues completely by making this
error message platform-neutral.
llvm-svn: 195422
|
| |
|
|
|
|
|
|
|
| |
ASTUnit instances are allocated infrequently so it's fine to keep this field
around in all build configurations.
Assigns null to silence -Wunused-private-field in Release.
llvm-svn: 195419
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
template <typename aaaaaaaaaaa, typename bbbbbbbbbbbbb, template <typename>
class cccccccccccccccccccccc, typename ddddddddddddd>
class C {};
After:
template <typename aaaaaaaaaaa, typename bbbbbbbbbbbbb,
template <typename> class cccccccccccccccccccccc,
typename ddddddddddddd>
class C {};
llvm-svn: 195418
|
| |
|
|
|
|
|
|
|
|
|
| |
Before:
int count = set<int> { f(), g(), h() }
.size();
After:
int count = set<int>{f(), g(), h()}.size();
llvm-svn: 195417
|
| |
|
|
|
|
|
|
| |
and testing of objc_bridgmutable attribute per
Aaron Ballman's comments.
// rdar://15498044
llvm-svn: 195396
|
| |
|
|
| |
llvm-svn: 195384
|
| |
|
|
|
|
| |
"UNSUPPORTED" comment because unsigned __int128 type is in fact supported.
llvm-svn: 195378
|
| |
|
|
|
|
|
|
| |
whose semantic is currently identical to objc_bridge,
but their differences may manifest down the road with
further enhancements. // rdar://15498044
llvm-svn: 195376
|
| |
|
|
|
|
|
| |
inferred as 'assign', not 'assign' and 'strong'.
// rdar://15509831
llvm-svn: 195368
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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!
llvm-svn: 195367
|
| |
|
|
| |
llvm-svn: 195359
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 195354
|
| |
|
|
|
|
|
|
|
| |
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.
llvm-svn: 195353
|
| |
|
|
|
|
| |
Fixed scalar dup alias and added test case.
llvm-svn: 195329
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 195328
|
| |
|
|
|
|
|
| |
Intrinsics implemented: vqdmull_lane, vqdmulh_lane, vqrdmulh_lane,
vqdmlal_lane, vqdmlsl_lane scalar Neon intrinsics.
llvm-svn: 195326
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 195323
|
| |
|
|
|
|
| |
diagnostic reusable.
llvm-svn: 195322
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 195306
|
| |
|
|
|
|
|
| |
expression that is not a zero literal, in C. This is a different, and more
targeted, approach than that in r194540.
llvm-svn: 195303
|
| |
|
|
|
|
| |
considerable amount of duplicated code.
llvm-svn: 195302
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]);
}
llvm-svn: 195301
|
| |
|
|
|
|
|
| |
retain attribute for inferred properties.
// rdar://15519923
llvm-svn: 195292
|
| |
|
|
|
|
|
| |
ARC and in objectiveC/ObjectiveC++ MRR mode as well.
// rdar://15454846
llvm-svn: 195288
|
| |
|
|
|
|
| |
semantic analysis. Removes some magic numbers.
llvm-svn: 195287
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 195283
|
| |
|
|
|
|
|
| |
case where the type in the following declaration is specified as a template-id,
and refactor for clarity.
llvm-svn: 195280
|
| |
|
|
|
|
| |
or from a toll free bridge cast. // rdar://15454846
llvm-svn: 195278
|
| |
|
|
|
|
| |
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.
llvm-svn: 195277
|
| |
|
|
|
|
| |
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.
llvm-svn: 195275
|
| |
|
|
|
|
| |
For PTX, we want the target to handle struct returns directly.
llvm-svn: 195268
|
| |
|
|
|
|
|
|
|
| |
We are still using Dwarf Version 2 for Darwin systems, make it consistent
with -gline-tables-only.
This should fix an internal buildbot.
llvm-svn: 195267
|
| |
|
|
|
|
|
| |
from qualified-id objects to CF types with
objc_bridge annotation. // rdar://15454846
llvm-svn: 195264
|
| |
|
|
|
|
|
|
|
| |
- 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>.
llvm-svn: 195259
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 195256
|
| |
|
|
|
|
| |
flag the LinkageSpecDecl as being implicitly generated too.
llvm-svn: 195255
|
| |
|
|
| |
llvm-svn: 195253
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: klimek, djasper
Reviewed By: klimek
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2231
llvm-svn: 195251
|
| |
|
|
|
|
| |
to the crt*.o files, libraries and headers for the MIPS FSFS toolchain.
llvm-svn: 195249
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
void f() {
CHECK_EQ(aaaa, (
*bbbbbbbbb)->cccccc)
<< "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq";
}
After:
void f() {
CHECK_EQ(aaaa, (*bbbbbbbbb)->cccccc)
<< "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq";
}
llvm-svn: 195240
|