| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here's the fail log from our internal setup:
===
.../tools/clang/clang -cc1 -internal-isystem .../tools/clang/staging/include -nostdsysteminc .../tools/clang/test/CodeGenOpenCL/spir-calling-conv.cl -triple spir-unknown-unknown -emit-llvm -o -
FileCheck .../tools/clang/test/CodeGenOpenCL/spir-calling-conv.cl
.../tools/clang/test/CodeGenOpenCL/spir-calling-conv.cl:11:12: error: expected string not found in input
// CHECK: %call = tail call spir_func i32 @get_dummy_id(i32 0)
^
<stdin>:6:52: note: scanning from here
define spir_kernel void @foo(i32 addrspace(1)* %A) #0 {
^
<stdin>:7:2: note: possible intended match here
%1 = tail call spir_func i32 @get_dummy_id(i32 0) #2
^
===
Here's a failure on a public CI server:
http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_check/1183/
llvm-svn: 226558
|
| |
|
|
| |
llvm-svn: 226552
|
| |
|
|
|
|
|
| |
This patch allows to use predetermined shared variables in private clauses in
parallel or tasks regions.
llvm-svn: 226549
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements Section 3.7 from the SPIR 1.2 spec:
SPIR kernels should use "spir_kernel" calling convention.
Non-kernel functions use "spir_func" calling convention. All
other calling conventions are disallowed.
The patch works only for OpenCL source. Any other uses will need
to ensure that kernels are assigned the spir_kernel calling
convention correctly.
llvm-svn: 226548
|
| |
|
|
|
|
| |
`MDNode::getTemporary()` returns a `unique_ptr<>` as of r226504.
llvm-svn: 226505
|
| |
|
|
|
|
|
|
|
| |
Analogous to AVX2, these need to be implemented as macros to properly
propagate the immediate index operand.
Part of <rdar://problem/17688758>
llvm-svn: 226496
|
| |
|
|
|
|
| |
with a DW_OP_deref instead.
llvm-svn: 226474
|
| |
|
|
| |
llvm-svn: 226465
|
| |
|
|
|
|
|
|
| |
Crashing input:
/\
/ comment
llvm-svn: 226454
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously crashing input:
void f(
#if A
);
#else
#endif
llvm-svn: 226451
|
| |
|
|
|
|
| |
Input "a<," made clang-format crash.
llvm-svn: 226450
|
| |
|
|
| |
llvm-svn: 226449
|
| |
|
|
| |
llvm-svn: 226448
|
| |
|
|
| |
llvm-svn: 226447
|
| |
|
|
|
|
|
| |
This assert would trigger on:
#d , = }
llvm-svn: 226446
|
| |
|
|
|
|
|
| |
It shouldn't have been removed, the code which replaced it didn't cover
this case.
llvm-svn: 226442
|
| |
|
|
| |
llvm-svn: 226441
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Things that are OK:
extern int var1 __attribute((alias("v1")));
static int var2 __attribute((alias("v2")));
Things that are not OK:
int var3 __attribute((alias("v3")));
extern int var4 __attribute((alias("v4"))) = 4;
We choose to accpet:
struct S { static int var5 __attribute((alias("v5"))); };
This code causes assertion failues in GCC 4.8 and ICC 13.0.1, we have
no reason to reject it.
This partially fixes PR22217.
llvm-svn: 226436
|
| |
|
|
|
|
|
| |
The copyprivate clause must not be used with the nowait clause in single
directive.
llvm-svn: 226429
|
| |
|
|
|
|
| |
Warn on inaccessible direct base
llvm-svn: 226423
|
| |
|
|
|
|
| |
buitins.
llvm-svn: 226422
|
| |
|
|
|
|
| |
comparison immediate. This requires converting to a macro in the header file.
llvm-svn: 226421
|
| |
|
|
|
|
|
|
|
|
| |
If an unscoped enum is used as a nested name specifier and the language dialect
is not C++ 11, issue an extension warning.
This fixes PR16951.
Differential Revision: http://reviews.llvm.org/D6389
llvm-svn: 226413
|
| |
|
|
|
|
| |
Code review suggestion by Eric Christopher.
llvm-svn: 226395
|
| |
|
|
|
|
|
|
|
| |
expression
Just as r225956 did for scalar expressions (CGExprScalar::Visit), do the
same for complex expressions.
llvm-svn: 226390
|
| |
|
|
|
|
| |
behavior change.
llvm-svn: 226389
|
| |
|
|
|
|
|
|
|
| |
expression
Just as r225956 did for scalar expressions (CGExprScalar::Visit), do the
same for aggregate expressions.
llvm-svn: 226388
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
initializers from in class non-static data members are explicitly attributed to the desired line.
The code setting the debug location being removed here was accidentally
leaking a location into the call to the non-static data member's ctor
call. Without it the call had no location and could cause assertion
failures if it was inlined. Now that it has a location (and a correct
one at that) this code should hopefully be no longer needed.
It's possible of course that other parts of the debug info are also
relying on the debug locations being set here to leak to where they're
needed - so we might see the same assertions again & will have to
investigate what the dependence was/is. But the chances are good that
any of those are debug info line table quality bugs we've just not found
yet anyway - so it'll be good to flush them out.
llvm-svn: 226383
|
| |
|
|
|
|
|
|
|
|
| |
This was causing some trouble for otherwise dead code removed in r225085
(reverted in r225361). The location being set for function arguments was
leaking out to the call which wasn't setting its own location (so a
quality bug turned into a crasher with r225085). Fix this so r225085 can
be recommitted.
llvm-svn: 226382
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
logic.
In one place we would try to check for the difference between integers
even if we were missing one of the integers. This would eventually end
up reading uninitialized data out of the APSInt objects. The fix is to
short circuit the sameness test when we don't have integers on both
sides.
This fixes a test failure I was seeing with MSan. Not sure whether other
bots were seeing it or not, but yay MSan. In particular the feature to
very carefully track origins back through stores throughout the program
was invaluable.
llvm-svn: 226375
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clang currently crashes on
class C {
C() = default;
C() = delete;
};
My cunning plan for fixing this was to change the `if (!FnD)` in
Parser::ParseCXXInlineMethodDef() to `if (!FnD || FnD->isInvalidDecl)` – but
alas, the second constructor decl wasn't marked as invalid. This lets
Sema::MergeFunctionDecl() return true on function redeclarations, which leads
to them being marked invalid.
This also improves error messages when functions are redeclared.
llvm-svn: 226365
|
| |
|
|
| |
llvm-svn: 226364
|
| |
|
|
| |
llvm-svn: 226363
|
| |
|
|
|
|
|
| |
Destructors have a special treatment in getFunctionLinkage. Instead of
duplicating the logic, check the resulting linkage.
llvm-svn: 226361
|
| |
|
|
| |
llvm-svn: 226359
|
| |
|
|
| |
llvm-svn: 226357
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch add a new option to dis-allow all inline asm.
Any GCC style inline asm will be reported as an error.
Reviewers: rnk, echristo
Reviewed By: rnk, echristo
Subscribers: bob.wilson, rnk, echristo, rsmith, cfe-commits
Differential Revision: http://reviews.llvm.org/D6870
llvm-svn: 226340
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As mentioned in the previous commit, if a property (declared with @property)
has a name that matches a special Objective-C method family, the getter picks
up that family despite being declared by the property. The most correct way
to solve this problem is to add the 'objc_method_family' attribute to the
getter with an argument of 'none', which unfortunately requires an explicit
declaration of the getter.
This commit adds a note to the existing error (ARC) or warning (MRR) for
such a poorly-named property that suggests the solution; if there's already
a declaration of the getter, it even includes a fix-it.
llvm-svn: 226339
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two years ago I added a compile-time "optimization" to
ObjCMethodDecl::findPropertyDecl: exit early if the current method is part
of a special Objective-C method family (like 'new' or 'init'). However, if a
property (declared with @property) has a name that matches a method family,
the getter picks up that family despite being declared by the property. The
early exit then made ObjCMethodDecl::findPropertyDecl decide that there
was no associated property, despite the method itself being marked as an
accessor. This corrects that by removing the early exit.
This does /not/ change the fact that such a getter is considered to return a
value with a +1 retain count. The best way to eliminate this is by adding the
objc_method_family(none) attribute to the getter, but unlike the existing
ns_returns_not_retained that can't be applied directly to the property -- you
have to redeclare the getter instead.
(It'd be nice if @property just implied objc_method_family(none) for its
getter, but that would be a backwards-incompatible change.)
rdar://problem/19038838
llvm-svn: 226338
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ambiguity but wasn't.
In the new test case, "click" wasn't being corrected properly because
Sema::ClassifyName would call CorrectTypo for "click" then later
Sema::DiagnoseEmptyLookup would call CorrectTypoDelayed for the same use
of "click" (the former by the parser needing to determine what the
identifier is so it knows how to parse the statement, i.e. is it the
beginning of a declaration or an expression). CorrectTypo would record
that typo correction for "click" failed and CorrectTypoDelayed would see
that and not even try to correct the typo, even though in this case
CorrectTypo failed due to an ambiguity (both "Click" and "clock" having
an edit distance of one from "click") that could be resolved with more
information. The fix is two-fold:
1) Have CorrectTypo not record failed corrections if the reason for
the failure was two or more corrections with the same edit
distance, and
2) Make the CorrectionCandidateCallback used by
Parser::ParseCastExpression reject FunctionDecl candidates when the
next token after the identifier is a ".", "=", or "->" since
functions cannot be assigned to and do not have members that can be
referenced.
The reason for two correction spots is that from r222549 until r224375
landed, the first correction attempt would fail completely but the
second would suggest "clock" while having the note point to the
declaration of "Click".
llvm-svn: 226334
|
| |
|
|
|
|
|
|
| |
Fixes PR22236
Patch by Nicolas Brunie! <nicolas.brunie@kalray.eu>
llvm-svn: 226328
|
| |
|
|
| |
llvm-svn: 226325
|
| |
|
|
| |
llvm-svn: 226320
|
| |
|
|
| |
llvm-svn: 226317
|
| |
|
|
| |
llvm-svn: 226307
|
| |
|
|
|
|
|
|
|
|
|
| |
There was already an explicit check for that for the first decl. Move that
to a different place so that it's called for the following decls too. Also
don't randomly set the BitfieldSize ExprResult to true (this sets a pointer to
true internally).
Found by SLi's bot.
llvm-svn: 226306
|
| |
|
|
| |
llvm-svn: 226303
|
| |
|
|
|
|
| |
Part of <rdar://problem/17688758>
llvm-svn: 226298
|
| |
|
|
| |
llvm-svn: 226294
|
| |
|
|
| |
llvm-svn: 226286
|