| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
conflicts from a separate problematic patch.
llvm-svn: 158750
|
|
|
|
|
|
|
|
| |
The original r158700 caused crashes in the gcc test suite,
g++.abi/vtable3a.C among others. It also caused failures in the libc++
test suite.
llvm-svn: 158749
|
|
|
|
|
|
| |
also being sufficiently conformant to LLVM's coding standards.
llvm-svn: 158739
|
|
|
|
|
|
|
|
|
|
| |
r158085 added some logic to track predefined declarations. The main reason we
had predefined declarations in the input was because the __builtin_va_list
declarations were injected into the preprocessor input. As of r158592 we
explicitly build the __builtin_va_list declarations. Therefore the predefined
decl tracking is no longer needed.
llvm-svn: 158732
|
|
|
|
|
|
| |
includes support for the align (which fixes PR12631).
llvm-svn: 158717
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note that this is mostly a structural patch that handles the change from the old
spelling style to the new one. One consequence of this is that all AT_foo_bar
enum values have changed to not be based off of the first spelling, but rather
off of the class name, so they are now AT_FooBar and the like (a straw poll on
IRC showed support for this). Apologies for code churn.
Most attributes have GNU spellings as a temporary solution until everything else
is sorted out (such as a Keyword spelling, which I intend to add if someone else
doesn't beat me to it). This is definitely a WIP.
I've also killed BaseCheckAttr since it was unused, and I had to go through
every attribute anyway.
llvm-svn: 158700
|
|
|
|
|
|
|
|
| |
Now, as long as the 'Namespaces' variable is correct inside Attr.td, the
generated code will correctly admit a C++11 attribute only when it has the
appropriate namespace(s).
llvm-svn: 158661
|
|
|
|
|
|
| |
__forceinline is a combination of the inline keyword and __attribute__((always_inline))
llvm-svn: 158653
|
|
|
|
|
|
|
|
|
| |
also deal with '>>>' (in CUDA), '>=', and '>>='. Fix the FixItHints logic to
deal with cases where the token is followed by an adjacent '=', '==', '>=',
'>>=', or '>>>' token, where a naive fix-it would result in a differing token
stream on a re-lex.
llvm-svn: 158652
|
|
|
|
|
|
|
| |
* Added \file, \brief and \verbatim...\endverbatim markup, particularly around
documentation of subset of the grammars that are being parsed.
llvm-svn: 158628
|
|
|
|
| |
llvm-svn: 158573
|
|
|
|
| |
llvm-svn: 158572
|
|
|
|
|
|
|
| |
for unexpanded parameter packs. Fixes the crash-on-invalid in
PR13117.
llvm-svn: 158525
|
|
|
|
| |
llvm-svn: 158495
|
|
|
|
|
|
| |
statements are allowed on the same line.
llvm-svn: 158372
|
|
|
|
|
|
|
|
|
|
| |
Specifically, improve the handling of whitespace, stop saving tokens that are
in comments and fix the case where we have a comment followed by a closing brace
on the next line.
Unfortunately, there's no easy way of testing this code.
llvm-svn: 158367
|
|
|
|
|
|
| |
all. Suppresses follow-on errors mentioned in PR13074.
llvm-svn: 158348
|
|
|
|
| |
llvm-svn: 158325
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
such as "protocol" and "expression" being implicitly turned into links to
mistakenly-generated Doxygen pages:
- Escaping @ symbols when Doxygen would otherwise incorrectly interpret them;
- Escaping # symbols when they're not intended as explicit Doxygen link
requests, such as when discussing preprocessor directives;
- In one odd case, unescaping @ in @__experimental_modules_import, because
Doxygen wrote '\@' to the output in that case, causing the example in the
description of ImportDecl to be wrong; and
- Fixing a typo: @breif -> @brief.
llvm-svn: 158299
|
|
|
|
|
|
|
| |
initialization, and use that information to produce the right kind of
initialization during template instantiation.
llvm-svn: 158288
|
|
|
|
|
|
|
| |
where '>' is going to behave as an operator (and not as a '>' closing
a template argument list).
llvm-svn: 158111
|
|
|
|
|
|
| |
-Wunused-private-field.
llvm-svn: 158086
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In standard C since C89, a 'translation-unit' is syntactically defined to have
at least one "external-declaration", which is either a decl or a function
definition. In Clang the latter gives us a declaration as well.
The tricky bit about this warning is that our predefines can contain external
declarations (__builtin_va_list and the 128-bit integer types). Therefore our
AST parser now makes sure we have at least one declaration that doesn't come
from the predefines buffer.
Also, remove bogus warning about empty source files. This doesn't catch source
files that only contain comments, and never fired anyway because of our
predefines.
PR12665 and <rdar://problem/9165548>
llvm-svn: 158085
|
|
|
|
|
|
| |
This patch fixes it. // rdar://11488351
llvm-svn: 157646
|
|
|
|
|
|
|
|
|
| |
on the RecordDecl. Persist the MS portability type attributes and
ignore them in Sema rather than the parser.
Patch by João Matos!
llvm-svn: 157288
|
|
|
|
|
|
|
| |
errornously using commas to separate ObjC message arguments.
// rdar://11376372
llvm-svn: 157216
|
|
|
|
| |
llvm-svn: 156987
|
|
|
|
|
|
|
|
|
|
|
| |
location
of the DeclStmt node, otherwise libclang will not work for anything inside that
class.
rdar://10837710
llvm-svn: 156966
|
|
|
|
|
|
|
|
| |
Disambiguate past such a potential problem, and use the absence of 'typename'
to break ties in favor of a parenthesized thingy being an initializer, if
nothing else in the declaration disambiguates it as declaring a function.
llvm-svn: 156963
|
|
|
|
|
|
|
|
| |
a warning for an extra semi-colon after function definitions. Added logic
so that a block of semi-colons on a line will only get one warning instead
of a warning for each semi-colon.
llvm-svn: 156934
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This improves the conversion diagnostics (by correctly pointing to the loop
construct for conversions that may've been caused by the contextual conversion
to bool caused by a condition expression) and also causes the NULL conversion
warnings to be correctly suppressed when crossing a macro boundary in such a
context. (previously, since the conversion context location was incorrect, the
suppression could not be performed)
Reported by Nico Weber as feedback to r156826.
llvm-svn: 156901
|
|
|
|
|
|
|
|
|
| |
To do that, keep track of the location of the protocol id in the ObjCProtocolExpr
AST node.
rdar://11190837
llvm-svn: 156890
|
|
|
|
| |
llvm-svn: 156860
|
|
|
|
|
|
|
|
| |
and the thing we have has a scope specifier, and we're in a context that doesn't
allow declaring a qualified name, then the error is a malformed type, not a
missing type.
llvm-svn: 156856
|
|
|
|
|
|
| |
disambiguate whether the type name was forgotten or mistyped.
llvm-svn: 156854
|
|
|
|
|
|
|
| |
permitted as a Microsoft extension. Patch by William Wilson! (Plus some minor
tweaking by me.)
llvm-svn: 156786
|
|
|
|
|
|
| |
rdar://11426994
llvm-svn: 156565
|
|
|
|
|
|
|
| |
'*' on objective-c class name was misplaced.
// rdar://11311333
llvm-svn: 156517
|
|
|
|
|
|
|
| |
parser, and use it to emit better diagnostics in cases where an identifer
can't be looked up as a type name.
llvm-svn: 156508
|
|
|
|
|
|
|
| |
normal parse for token sequences like 'vector pixel foo'. This incidentally also
fixes a couple of wrong-parse issues.
llvm-svn: 156503
|
|
|
|
|
|
| |
or template-id which can't be parsed.
llvm-svn: 156468
|
|
|
|
|
|
|
|
|
|
| |
so that we actually accumulate all the delayed diagnostics. Do
this so that we can restore those diagnostics to good standing
if it turns out that we were wrong to suppress, e.g. if the
tag specifier is actually an elaborated type specifier and not
a declaration.
llvm-svn: 156291
|
|
|
|
|
|
|
| |
separate pools owned by the RAII objects that keep pushing
decl state. This gives us quite a bit more flexibility.
llvm-svn: 156289
|
|
|
|
|
|
|
|
|
|
|
|
| |
cases in switch statements. Also add a [[clang::fallthrough]] attribute, which
can be used to suppress the warning in the case of intentional fallthrough.
Patch by Alexander Kornienko!
The handling of C++11 attribute namespaces in this patch is temporary, and will
be replaced with a cleaner mechanism in a subsequent patch.
llvm-svn: 156086
|
|
|
|
|
|
|
| |
refactorings in that revision, and some of the subsequent bugfixes, which
seem to be relevant even without delayed exception specification parsing.
llvm-svn: 156031
|
|
|
|
|
|
|
| |
we're looking at a normal token. Tiny positive impact -fsyntax-only
time for <rdar://problem/11004361>.
llvm-svn: 155988
|
|
|
|
|
|
|
| |
the parsing of such things appears to be a conforming extension, but it breaks
libstdc++4.7's std::pair.
llvm-svn: 155975
|
|
|
|
| |
llvm-svn: 155870
|
|
|
|
|
|
|
| |
victim. Don't crash if we have a delay-parsed exception specification for a
class member which is invalid in a way which precludes building a FunctionDecl.
llvm-svn: 155788
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
t.c:3:9: error: expected expression
if (x)) {
^
.. which isn't even true - a statement or expression is fine. After:
t.c:3:9: error: extraneous ')' after condition, expected a statement
if (x)) {
^
This is the second part of PR12595
llvm-svn: 155762
|