| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
cstring, converted to NSString, produce the
matching AST for it. This also required some
refactoring of the previous code. // rdar://14106083
llvm-svn: 197605
|
| |
|
|
|
|
|
| |
These functions now always set the same variables in the same order and they
don't overlap with thep constructor.
llvm-svn: 197604
|
| |
|
|
| |
llvm-svn: 197603
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
floats.
llvm-svn: 197592
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 197548
|
| |
|
|
| |
llvm-svn: 197544
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Tidy up built-in record creation to reduce code duplication.
Continuation of r197336.
llvm-svn: 197452
|
| |
|
|
|
|
| |
conformance is inferred. // rdar://15515206
llvm-svn: 197448
|
| |
|
|
|
|
|
| |
to determine if a move function is the std::move function. This allows functions
like std::__1::move to also be treated a the move function.
llvm-svn: 197445
|
| |
|
|
|
|
|
| |
This completes the cleanup/refactoring of DataLayout on the clang side. Next
is figuring out the differences between the llvm and clang produced strings
llvm-svn: 197442
|
| |
|
|
|
|
| |
staged yet.
llvm-svn: 197441
|
| |
|
|
| |
llvm-svn: 197440
|
| |
|
|
| |
llvm-svn: 197437
|
| |
|
|
|
|
|
|
|
|
| |
of objc_bridge_related attribute; eliminate
unnecessary diagnostics which is issued elsewhere,
fixit now produces a valid AST tree per convention.
This results in some simplification in handling of
this attribute as well. // rdar://15499111
llvm-svn: 197436
|
| |
|
|
|
|
| |
I missed these in previous commits.
llvm-svn: 197435
|
| |
|
|
|
|
|
| |
The f80:128:128 was followed by a f80:32:32 and so never used. Looks like this
was there since r91746.
llvm-svn: 197433
|
| |
|
|
| |
llvm-svn: 197430
|
| |
|
|
| |
llvm-svn: 197429
|
| |
|
|
| |
llvm-svn: 197428
|
| |
|
|
| |
llvm-svn: 197427
|