| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
The recovery was failing due to a missing case in SkipUntil().
Also add back tests from r197553 that were reverted in the previous commit.
llvm-svn: 197598
|
| |
|
|
|
|
|
|
|
|
|
| |
brackets and parens"
These parser changes were redundant. The same or better recovery can be
achieved with a one-line fix to SkipUntil() due to land in the next commit.
This reverts commit r197553.
llvm-svn: 197597
|
| |
|
|
|
|
|
|
| |
doesn't get broken again
(prompted by NAKAMURA Takumi)
llvm-svn: 197596
|
| |
|
|
| |
llvm-svn: 197593
|
| |
|
|
|
|
| |
floats.
llvm-svn: 197592
|
| |
|
|
|
|
| |
// rdar://15397430
llvm-svn: 197586
|
| |
|
|
|
|
|
| |
I am about to send a patch for review touching these and clang-formating first
makes the patch much easier to read.
llvm-svn: 197585
|
| |
|
|
|
|
| |
declarations. This appears to be an omission from r189644.
llvm-svn: 197584
|
| |
|
|
|
|
| |
AST nodes but never actually make use of them. No functional changes.
llvm-svn: 197582
|
| |
|
|
| |
llvm-svn: 197580
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit kills off custom type specifier and keyword handling of OpenCL C
data types.
Although the OpenCL spec describes them as keywords, we can handle them more
elegantly as predefined types. This should provide better error correction and
code completion as well as simplifying the implementation.
The primary intention is however to simplify the C/C++ parser and save some
packed bits on AST structures that had been extended in r170432 just for
OpenCL.
llvm-svn: 197578
|
| |
|
|
|
|
| |
A f64 inside a struct can be 32 bit aligned on darwin.
llvm-svn: 197577
|
| |
|
|
|
|
| |
from llvm.
llvm-svn: 197576
|
| |
|
|
|
|
| |
are set at top.
llvm-svn: 197575
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
aaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
aaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa();
After:
aaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
aaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa();
Probably still not ideal, but should be a step into the right direction.
llvm-svn: 197557
|
| |
|
|
|
|
| |
parens
llvm-svn: 197553
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
bool a = ([aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaa || [aaaaaaaa aaaaa] ==
aaaaaaaaaaaaaaaaaaaa);
After:
bool a = ([aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaa ||
[aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaaaaa);
This fixes llvm.org/PR18271.
llvm-svn: 197552
|
| |
|
|
| |
llvm-svn: 197550
|
| |
|
|
|
|
|
|
|
| |
Right now clang produces the same DataLayout for all of them, but it could, for
example, add 'n' specifications when the end architecture is given.
No functionality change, this should just make future changes easier to read.
llvm-svn: 197549
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 197548
|
| |
|
|
| |
llvm-svn: 197544
|
| |
|
|
|
|
| |
It's handled correctly as a C-family language.
llvm-svn: 197542
|
| |
|
|
|
|
| |
per Jordan's review.
llvm-svn: 197540
|
| |
|
|
|
|
|
|
| |
This has no functionality change as clang adds explicit alignment info for
byval arguments. The only difference is that now the clang produced
DataLayout string for AArch64 is identical to the LLVM produced one.
llvm-svn: 197538
|
| |
|
|
| |
llvm-svn: 197537
|
| |
|
|
|
|
| |
a category implementation. // rdar://15397430
llvm-svn: 197534
|
| |
|
|
|
|
|
| |
that we consider a function for the purposes of checking \param and \returns,
look through reference types.
llvm-svn: 197530
|
| |
|
|
|
|
| |
boost::function and similar function-like objects
llvm-svn: 197528
|
| |
|
|
|
|
| |
ASTNode = 0 to reduce complexity. No functional change intended.
llvm-svn: 197525
|
| |
|
|
| |
llvm-svn: 197522
|
| |
|
|
| |
llvm-svn: 197521
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unlike Itanium's VTTs, the 'most derived' boolean or bitfield is the
last parameter for non-variadic constructors, rather than the second.
For variadic constructors, the 'most derived' parameter comes after the
'this' parameter. This affects constructor calls and constructor decls
in a variety of places.
Reviewers: timurrrr
Differential Revision: http://llvm-reviews.chandlerc.com/D2405
llvm-svn: 197518
|
| |
|
|
|
|
| |
these tests
llvm-svn: 197517
|
| |
|
|
| |
llvm-svn: 197516
|
| |
|
|
|
|
|
|
| |
when diagnosing casting of a cstring literal to
NSString in default and -fobjc-arc mode.
// rdar://14106083
llvm-svn: 197515
|
| |
|
|
| |
llvm-svn: 197513
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Avoid the gratuitous repurposing of C++ keyword 'private' by using a keyword
alias.
Also attempt to document the OpenCL keywords based on scraps of information
found online.
The purpose of this commit is to reduce impact on the C++ parser.
llvm-svn: 197511
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We would previously emit redundant diagnostics for the following code:
struct S {
virtual ~S() = delete;
void operator delete(void*, int);
void operator delete(void*, double);
} s;
First we would check on ~S() and error about the ambigous delete functions,
and then we would error about using the deleted destructor.
If the destructor is deleted, there's no need to check it.
Also, move the check from Sema::ActOnFields to CheckCompleteCXXClass. These
are run at almost the same time, called from ActOnFinishCXXMemberSpecification.
However, CHeckCompleteCXXClass may mark a defaulted destructor as deleted, and
if that's the case we don't want to check it.
Differential Revision: http://llvm-reviews.chandlerc.com/D2421
llvm-svn: 197509
|
| |
|
|
| |
llvm-svn: 197507
|
| |
|
|
| |
llvm-svn: 197504
|
| |
|
|
| |
llvm-svn: 197502
|
| |
|
|
|
|
| |
This makes it identical to the string llvm produces.
llvm-svn: 197500
|
| |
|
|
|
|
|
|
|
|
|
|
| |
1) Introduce TryConsumeToken() to handle the common test-and-consume pattern.
This brings about readability improvements in the parser and optimizes to avoid
redundant checks in the common case.
2) Eliminate the ConsumeCodeCompletionTok special case from ConsumeToken(). This
was used by only one caller which has been switched over to the more
appropriate ConsumeCodeCompletionToken() function.
llvm-svn: 197497
|
| |
|
|
|
|
|
|
|
|
|
| |
Now that we emit diagnostics for keyword-as-identifier hacks (-Wkeyword-compat)
we can go ahead and simplify some of the old revertible keyword support.
This commit adds a TryIdentKeywordUpgrade() function to mirror the recently
added TryKeywordIdentFallback() and uses it to replace the hard-coded list of
REVERTIBLE_TYPE_TRAITs.
llvm-svn: 197496
|
| |
|
|
| |
llvm-svn: 197495
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Formatting this:
void f() { // 1 space initial indent.
int i;
#define A \
int i; \
int j;
int k; // Format this line.
}
void f() {
#define A 1 // Format this line.
}
Before:
void f() { // 1 space initial indent.
int i;
#define A \
int i; \
int j;
int k; // Format this line.
}
void f() {
#define A 1 // Format this line.
}
After:
void f() { // 1 space initial indent.
int i;
#define A \
int i; \
int j;
int k; // Format this line.
}
void f() {
#define A 1 // Format this line.
}
llvm-svn: 197494
|
| |
|
|
| |
llvm-svn: 197490
|
| |
|
|
|
|
| |
(Yes, the irony is not lost on me :-) ).
llvm-svn: 197486
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead, mark the module as unavailable so that clang errors as soon as
someone tries to build this module.
This works towards the long-term goal of not stat'ing the header files at all
while reading the module map and instead read them only when the module is
being built (there is a corresponding FIXME in parseHeaderDecl()). However, it
seems non-trivial to get there and this unblock us and moves us into the right
direction.
Also changed the implementation to reuse the same DiagnosticsEngine.
llvm-svn: 197485
|
| |
|
|
| |
llvm-svn: 197461
|