| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
since it makes sense there to have const extern variables. Fixes
PR6495.
llvm-svn: 101818
|
|
|
|
| |
llvm-svn: 101464
|
|
|
|
|
|
|
|
| |
in case it ends up doing something that might trigger diagnostics
(template instantiation, ambiguity reporting, access
reporting). Noticed while working on PR6831.
llvm-svn: 101412
|
|
|
|
| |
llvm-svn: 101384
|
|
|
|
|
|
|
|
|
|
| |
ASTContext::getTypeSize() rather than ASTContext::getIntWidth() for
the width of an integral type. The former includes padding for bools
(to the target's size) while the latter does not, so we woud end up
zero-extending bools to the target width when we shouldn't. Fixes a
crash-on-valid in the included test.
llvm-svn: 101372
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generally recover from typos in keywords (since we would effectively
have to mangle the token stream). However, there are still benefits to
typo-correcting with keywords:
- We don't make stupid suggestions when the user typed something
that is similar to a keyword.
- We can suggest the keyword in a diagnostic (did you mean
"static_cast"?), even if we can't recover and therefore don't have
a fix-it.
llvm-svn: 101274
|
|
|
|
|
|
|
| |
are invalid. Prevents a crash-on-invalid during template instantiation.
I... really don't understand how this wasn't already present.
llvm-svn: 101203
|
|
|
|
| |
llvm-svn: 101173
|
|
|
|
|
|
| |
members of non-templated classes.
llvm-svn: 101122
|
|
|
|
|
|
| |
PR6207.
llvm-svn: 101119
|
|
|
|
|
|
|
| |
friend declaration; this used to be important but is now just a waste of time
plus an unreasonable assertion. Fixes PR6174.
llvm-svn: 101112
|
|
|
|
|
|
|
| |
ended up finding a function template that we didn't expect. Recover
more gracefully, and fix a similar issue for class templates.
llvm-svn: 101040
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function's type is (strictly speaking) non-dependent. This ensures
that, e.g., default function arguments get instantiated properly.
And, since I couldn't resist, collapse the two implementations of
function-parameter instantiation into calls to a single, new function
(Sema::SubstParmVarDecl), since the two had nearly identical code (and
each had bugs the other didn't!). More importantly, factored out the
semantic analysis of a parameter declaration into
Sema::CheckParameter, which is called both by
Sema::ActOnParamDeclarator (when parameters are parsed) and when a
parameter is instantiated. Previously, we were missing some
Objective-C and address-space checks on instantiated function
parameters.
Fixes PR6733.
llvm-svn: 101029
|
|
|
|
|
|
| |
attr constructor or destructor. Patch by Jean-Daniel Dupas!
llvm-svn: 100870
|
|
|
|
|
|
|
| |
warning. It's not harmful to have such pointless declarations, and GCC
does not diagnose this issue consistently.
llvm-svn: 100814
|
|
|
|
|
|
| |
variable declarations.
llvm-svn: 100809
|
|
|
|
|
|
|
| |
Declarator that depends on it. This fixes several redundant errors and bad
recoveries.
llvm-svn: 100779
|
|
|
|
| |
llvm-svn: 100753
|
|
|
|
|
|
| |
isNotEmpty calls.
llvm-svn: 100722
|
|
|
|
|
|
| |
declared in categories.
llvm-svn: 100577
|
|
|
|
|
|
| |
type.
llvm-svn: 100197
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nested-name-specifier (e.g., "class T::foo") fails to find a tag
member in the scope nominated by the
nested-name-specifier. Previously, we gave a bland
error: 'Nested' does not name a tag member in the specified scope
which didn't actually say where we were looking, which was rather
horrible when the nested-name-specifier was instantiated. Now, we give
something a bit better:
error: no class named 'Nested' in 'NoDepBase<T>'
llvm-svn: 100060
|
|
|
|
|
|
|
| |
this was parsed as a typename-specifier, elaborated-type-specifier
(including the kind), or just a dependent qualified type name.
llvm-svn: 100039
|
|
|
|
|
|
| |
the C-only "optimization".
llvm-svn: 100022
|
|
|
|
|
|
| |
refactoring work in this area.
llvm-svn: 100019
|
|
|
|
| |
llvm-svn: 100018
|
|
|
|
|
|
|
| |
term "fix-it" everywhere and even *I* get tired of long names
sometimes. No functionality change.
llvm-svn: 100008
|
|
|
|
|
|
| |
a lot for me on selfhosts, I dunno why.
llvm-svn: 99981
|
|
|
|
| |
llvm-svn: 99980
|
|
|
|
|
|
|
|
| |
This introduces FunctionType::ExtInfo to hold the calling convention and the
noreturn attribute. The next patch will extend it to include the regparm
attribute and fix the bug.
llvm-svn: 99920
|
|
|
|
| |
llvm-svn: 99708
|
|
|
|
|
|
|
| |
doing all the cleanup tasks and checks. This gives us the proper context for
checking access to base and member destructors.
llvm-svn: 99559
|
|
|
|
|
|
|
| |
we look for shadow friend decls in the appropriate scope before injecting
a new declaration.
llvm-svn: 99552
|
|
|
|
|
|
| |
extension (radar 6812436).
llvm-svn: 99408
|
|
|
|
|
|
|
|
| |
since we have absolutely no way to match them when they are declared
nor do we have a way to represent these parsed-but-not-checked friend
declarations.
llvm-svn: 99407
|
|
|
|
|
|
|
|
|
| |
template <> friend void foo(int);
we need to change it to
friend void foo<>(int);
or else the user won't get the template specialization they obviously want.
llvm-svn: 99390
|
|
|
|
| |
llvm-svn: 99389
|
|
|
|
|
|
|
| |
DeclContext because we don't want a NULL DeclContext. Instead, use the
current context.
llvm-svn: 99281
|
|
|
|
|
|
|
| |
are called (transitively) by regular functions/blocks within a
translation untion.
llvm-svn: 99233
|
|
|
|
|
|
|
|
|
| |
entering a function or block definition, not on every single declaration.
Unfortunately we don't have previous-lookup results around when it's time
to make this decision, so we have to redo the lookup. The alternative is
to use delayed diagnostics.
llvm-svn: 99172
|
|
|
|
|
|
|
| |
If a struct has an invalid field, mark it as invalid. Also avoid producing
errors about incomplete types that are invalid.
llvm-svn: 99150
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AnalysisBasedWarnings.
This object controls when the warnings are executed, allowing the client code
in Sema to selectively disable warnings as needed.
Centralizing the logic for analysis-based warnings allows us to optimize
when and how they are run.
Along the way, remove the redundant logic for the 'check fall-through' warning
for blocks; now the same logic is used for both blocks and functions.
llvm-svn: 99085
|
|
|
|
| |
llvm-svn: 99037
|
|
|
|
|
|
|
|
| |
lookups
so they don't trigger diagnostics like (say) access control.
llvm-svn: 98806
|
|
|
|
|
|
|
|
| |
ActOnStartCXXMemberDeclaration. We haven't started the field collector on this
class yet, so don't stop it. Fixes a crash in the VS buildbot and a memory error
on all the others.
llvm-svn: 98760
|
|
|
|
|
|
|
| |
considered to be a part of the translation unit unless they're named
in a way that brings them into existence.
llvm-svn: 98729
|
|
|
|
|
|
| |
Fixes the crash-on-invalid in PR6629.
llvm-svn: 98698
|
|
|
|
| |
llvm-svn: 98684
|
|
|
|
|
|
| |
that occur in constructors (on the unwind path).
llvm-svn: 98681
|
|
|
|
|
|
|
|
|
|
|
| |
on unqualified declarations.
Patch by Enea Zaffanella! Minimal adjustments: allocate the ExtInfo nodes
with the ASTContext and delete them during Destroy(). I audited a bunch of
Destroy methods at the same time, to ensure that the correct teardown was
being done.
llvm-svn: 98540
|