| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
initializer if the in-class declaration had one. Such a declaration must be initialized by a constant expression.
llvm-svn: 141279
|
|
|
|
|
|
| |
for static const float members is used in C++11 mode.
llvm-svn: 140828
|
|
|
|
|
|
| |
as a GNU extension. Don't extend the scope of this extension to all literal types in C++0x mode.
llvm-svn: 140820
|
|
|
|
|
|
| |
We had an extension which allowed const static class members of floating-point type to have in-class initializers, 'as a C++0x extension'. However, C++0x does not allow this. The extension has been kept, and extended to all literal types in C++0x mode (with a fixit to add the 'constexpr' specifier).
llvm-svn: 140801
|
|
|
|
|
|
| |
for-range and auto with an ExtWarn, and produce a -Wc++0x-compat warning in C++98 mode when auto is used as a storage class.
llvm-svn: 139102
|
|
|
|
| |
llvm-svn: 132889
|
|
|
|
| |
llvm-svn: 132878
|
|
|
|
|
|
|
|
| |
that they are C++0x extensions, and put them in the appropriate
group. We already support most of the semantics. Addresses
<rdar://problem/9407525>.
llvm-svn: 131153
|
|
|
|
|
|
| |
CHEKC -> CHECK
llvm-svn: 130809
|
|
|
|
|
|
| |
fully defined. Somehow this escaped notice for a very long time.
llvm-svn: 130298
|
|
|
|
|
|
|
|
|
|
| |
that the class
named by the nested-name-specifier is same or base of the class in which the member expression appears.
It seems we also had an ill-formed test case, mon dieu! Fixes rdar://8576107.
llvm-svn: 129493
|
|
|
|
| |
llvm-svn: 129335
|
|
|
|
|
|
| |
only parse an optional 'final' keyword.
llvm-svn: 128278
|
|
|
|
|
|
| |
definitions; they will be allowed in the next C++0x draft.
llvm-svn: 128273
|
|
|
|
|
|
| |
C++0x draft
llvm-svn: 128271
|
|
|
|
| |
llvm-svn: 124477
|
|
|
|
| |
llvm-svn: 124040
|
|
|
|
|
|
| |
used as a base.
llvm-svn: 124039
|
|
|
|
| |
llvm-svn: 124036
|
|
|
|
| |
llvm-svn: 123887
|
|
|
|
|
|
| |
class member.
llvm-svn: 123883
|
|
|
|
| |
llvm-svn: 123882
|
|
|
|
|
|
|
| |
Enforce C++[class.mem]p8:
A virt-specifier-seq shall contain at most one of each virt-specifier.
llvm-svn: 123611
|
|
|
|
| |
llvm-svn: 120184
|
|
|
|
|
|
| |
in C++0x. Patch by Jakub Wieczorek.
llvm-svn: 120182
|
|
|
|
| |
llvm-svn: 118381
|
|
|
|
|
|
| |
as the class itself. Fixes PR7082.
llvm-svn: 116573
|
|
|
|
| |
llvm-svn: 116527
|
|
|
|
|
|
|
|
|
| |
has not yet been parsed, note that the default argument hasn't been
parsed and keep track of all of the instantiations of that function
parameter. When its default argument does get parsed, imbue the
instantiations with that default argument. Fixes PR8245.
llvm-svn: 116324
|
|
|
|
|
|
| |
Manuel Klimek! Fixes PR7715.
llvm-svn: 116311
|
|
|
|
|
|
|
| |
case with redeclaration checking for fields, from Faisal Vali!
Fixes PR7970.
llvm-svn: 112476
|
|
|
|
| |
llvm-svn: 111997
|
|
|
|
|
|
|
|
| |
only form pointers-to-member if the expression has the appropriate
form. This avoids assertions later on on invalid code, but also
allows us to properly resolve mixed-staticity overloads.
llvm-svn: 111987
|
|
|
|
|
|
| |
members, from Faisal Vali! Fixes PR6904.
llvm-svn: 111900
|
|
|
|
|
|
|
|
| |
Remove -faccess-control from -cc1; add -fno-access-control.
Make the driver pass -fno-access-control by default.
Update a bunch of tests to be correct under access control.
llvm-svn: 100880
|
|
|
|
|
|
|
|
|
|
|
| |
- When instantiating a friend type template, perform semantic
analysis on the resulting type.
- Downgrade the errors concerning friend type declarations that do
not refer to classes to ExtWarns in C++98/03. C++0x allows
practically any type to be befriended, and ignores the friend
declaration if the type is not a class.
llvm-svn: 100635
|
|
|
|
|
|
| |
Fixes PR6643. Patch by Mike M!
llvm-svn: 98946
|
|
|
|
|
|
|
|
|
|
| |
therefore not creating ElaboratedTypes, which are still pretty-printed
with the written tag).
Most of these testcase changes were done by script, so don't feel too
sorry for my fingers.
llvm-svn: 98149
|
|
|
|
|
|
|
| |
are for out of line declarations more easily. This simplifies the logic and
handles the case of out-of-line class definitions correctly. Fixes PR6107.
llvm-svn: 96729
|
|
|
|
|
|
|
| |
conversions. Fix an access-control bug where privileges were not considered
at intermediate points along the inheritance path. Prepare for friends.
llvm-svn: 95775
|
|
|
|
|
|
|
|
| |
small bug fixes in SemaInit, switch over SemaDecl to use it more often, and
change a bunch of diagnostics which are different with the new initialization
code.
llvm-svn: 91767
|
|
|
|
|
|
|
|
|
| |
- This is designed to make it obvious that %clang_cc1 is a "test variable"
which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
can be useful to redefine what gets run as 'clang -cc1' (for example, to set
a default target).
llvm-svn: 91446
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
there's nothing interesting we can say now that we're correctly not requiring
the qualifier to name a known base class in dependent contexts.
Require scope specifiers on member access expressions to name complete types
if they're not dependent; delay lookup when they are dependent.
Use more appropriate diagnostics when qualified implicit member access
expressions find declarations from unrelated classes.
llvm-svn: 90289
|
|
|
|
|
|
| |
Fixes PR4674.
llvm-svn: 85072
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
unknown type name, e.g.,
foo::bar x;
when "bar" does not refer to a type in "foo".
With this change, the parser now calls into the action to perform
diagnostics and can try to recover by substituting in an appropriate
type. For example, this allows us to easily diagnose some missing
"typename" specifiers, which we now do:
test/SemaCXX/unknown-type-name.cpp:29:1: error: missing 'typename'
prior to dependent type name 'A<T>::type'
A<T>::type A<T>::f() { return type(); }
^~~~~~~~~~
typename
Fixes PR3990.
llvm-svn: 84053
|
|
|
|
|
|
|
|
|
| |
class templates. We now treat friend class templates much more like
normal class templates, except that they still get special name lookup
rules. Fixes PR5057 and eliminates a bunch of spurious diagnostics in
<iostream>.
llvm-svn: 82848
|
|
|
|
|
|
|
|
|
|
| |
specifier
of any previous declaration in case we replace it in a class's declaration table.
Fixes bug 4858. This sort of thing makes me reconsider putting friend declarations in
declaration lists.
llvm-svn: 80750
|
|
|
|
|
|
|
| |
decl list, and remove some workarounds that were due to this. Thanks to Eli for
pointing this out and providing the test case.
llvm-svn: 80745
|
|
|
|
|
|
| |
existing declaration chains.
llvm-svn: 80636
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declarations of same, introduce a single AST class and add appropriate bits
(encoded in the namespace) for whether a decl is "real" or not. Much hackery
about previously-declared / not-previously-declared, but it's essentially
mandated by the standard that friends alter lookup, and this is at least
fairly non-intrusive.
Refactor the Sema methods specific to friends for cleaner flow and less nesting.
Incidentally solve a few bugs, but I remain confident that we can put them back.
llvm-svn: 80353
|