Home | History | Annotate | Download | only in Sema

Lines Matching defs:Class

61 class TypeNameValidatorCCC : public CorrectionCandidateCallback {
184 // lookup for class-names.
199 // the object expression is of a class type C, the type-name is also
200 // looked up in the scope of class C. At least one of the lookups shall
373 /// isMicrosoftMissingTypename - In Microsoft mode, within class scope,
378 /// template<class T> class A {
382 /// template<class T> class B : public A<T> {
384 /// A<T>::TYPE a; // no typename required because A<T> is a base class.
461 // See if II is a class template that the user forgot to pass arguments to.
535 TagName = "class";
536 FixItTagName = "class ";
768 // A lookup that finds an injected-class-name (10.2) can result in an
770 // one base class). If all of the injected-class-names that are found
771 // refer to specializations of the same class template, and if the name
773 // class template itself and not a specialization thereof, and is not
845 ObjCInterfaceDecl *Class = dyn_cast<ObjCInterfaceDecl>(FirstDecl);
846 if (!Class) {
850 Class = Alias->getClassInterface();
853 if (Class) {
854 DiagnoseUseOfDecl(Class, NameLoc);
863 QualType T = Context.getObjCInterfaceType(Class);
899 // finished parsing the top-level class, so the top-level class is
904 // A function not defined within a class will always return to its
909 // A C++ inline method/friend is parsed *after* the topmost class
911 // class is the context we need to return to.
915 // Return the declaration context of the topmost class the inline method is
942 // A name used in the definition of a static data member of class
994 // from the lexical parent, rather than the top-level class.
1013 // rather than the top-level class.
1170 /// class S {
1219 // Ignore class templates.
1233 // Make sure we get the storage class from the canonical declaration,
1427 /// \brief Look for an Objective-C class in the translation unit.
1429 /// \param Id The name of the Objective-C class we're looking for. If
1436 /// if there is no class with the given name.
1438 /// \returns The declaration of the named Objective-C class, or NULL if the
1439 /// class could not be found.
1449 // find an Objective-C class name.
1465 // This routine must always return a class definition, if any.
1705 if (!TypeID->isStr("Class"))
1708 // Install the built-in type for 'Class', ignoring the current definition.
1756 // In a given non-class scope, a typedef specifier can be used to
1763 // In a given class scope, a typedef specifier can be used to redefine
1764 // any class-name declared in that scope that is not also a typedef-name
2380 // information about storage class of CXXMethod.
2508 // MSVC allows explicit template specialization at class scope:
2527 // C++ [class.mem]p1:
2529 // member-specification, except that a nested class or member
2530 // class template can be declared and then later defined.
2914 // C++ [class.mem]p1:
2951 // For an identifier declared with the storage-class specifier
3052 // If this tag is the direct child of a class, number it if
3062 // If this tag isn't a direct child of a class, number it if it is local.
3145 // Per C++ [dcl.type.elab]p1, a class declaration cannot have a
3236 // If a storage-class-specifier appears in a decl-specifier-seq, [...] the
3247 // Note that a linkage-specification sets a storage class, but
3361 // C++ [class.union]p2:
3367 // C++ [class.union]p2:
3413 "Parser allowed 'typedef' as storage class VarDecl.");
3428 llvm_unreachable("unknown storage class specifier");
3433 /// (C++ [class.union]) and a C11 feature; anonymous structures
3455 // C++ [class.union]p6:
3469 // C++ [class.union]p6:
3470 // A storage class is not allowed in a declaration of an
3471 // anonymous union in a class scope.
3510 // C++ [class.union]p2:
3518 // C++ [class.union]p3:
3528 // C++ [class.union]p1
3529 // An object of a class with a non-trivial constructor, a non-trivial
3619 // mutable can only appear on non-static class members, so it's always
3633 // trivial in almost all cases, except if a union member has an in-class
3793 // Determine the type of the class being constructed.
3845 /// definition doesn't match any declaration within the class or namespace.
3888 // - types which will become injected class names
3964 /// DiagnoseClassNameShadow - Implement C++ [class.mem]p13:
3965 /// If T is the name of a class, then each of the following shall have a
3967 /// - every static data member of class T;
3968 /// - every member function of class T
3969 /// - every member of class T that is itself a type;
4007 // its class, the definition or explicit instantiation of a function
4011 // another class or namespace (11.3). [...]
4014 // class or namespaces in which the entity is already declared.
4016 // class X {
4047 // Cannot qualify members within a class.
4113 // declaration context is dependent but does not refer to a class,
4114 // class template, or class template partial specialization. Complain
4197 // previously declared member of the class or namespace to which the
4206 // class X {
4219 // using-declaration in the scope of the class or namespace nominated by
4236 // (class or enum). In this case, the new declaration will hide the
4810 // mutable can only appear on non-static class members, so it's always
4820 // In C++11, the 'register' storage class specifier is deprecated.
4838 // C99 6.9p2: The storage-class specifiers auto and register shall not
4852 // Set up the special work-group-local storage class for variables in the
4914 // of class members
4921 llvm_unreachable("C storage class in c++!");
4923 llvm_unreachable("OpenCL storage class in c++!");
4934 // C++98 [class.union]p1: If a union contains a static data member,
5010 // ... a template name declared in namespace scope or in class
5116 // storage-class-specifier static is implied if it does not appear
5389 // Only warn about certain kinds of shadowing for class members.
5391 // In particular, don't warn about shadowing non-class members.
5756 /// method overrides a method in a base class, to be used with
5770 // We really want to find the base class destructor here.
5868 class DifferentNameValidatorCCC : public CorrectionCandidateCallback {
6059 default: llvm_unreachable("Unknown storage class!");
6076 // block scope shall have no explicit storage-class specifier
6088 // No explicit storage class has already been returned
6129 // Check that the return type is not an abstract class type.
6131 // the class has been completely parsed.
6162 // If the class is complete, then we now create the implicit exception
6163 // specification. If the class is incomplete or dependent, we can't do
6469 // C++ [class.friend]p5
6471 // class . . . . Such a function is implicitly inline.
6588 // nonstatic class member functions that appear within a
6589 // member-specification of a class declaration; see 10.3.
6596 // 'virtual' was specified outside of the class.
6630 // constructor or conversion function within its class definition;
6634 // 'explicit' was specified outside of the class.
6701 // C++ [class.mfct]p2:
6702 // A member function may be defined (8.4) in its class definition, in
6709 // C++ [class.static]p1:
6710 // A data or function member of a class may be declared static
6711 // in a class definition, in which case it is a static member of
6712 // the class.
6947 // A storage-class-specifier shall not be specified in an explicit
6977 // If this is a class member, mark the class invalid immediately.
7030 // Fake up an access specifier if it's supposed to be a class member.
7052 // function that is a member of a class or namespace, but there
7053 // was no such member function declared (C++ [class.mfct]p2,
7056 // class X {
7091 // function templates or member functions of class templates, per
7121 // If there's a #pragma GCC visibility in scope, and this isn't a class
7184 // Here we have an function template explicit specialization at class scope.
7382 // declaration is not necessarily from the class definition.
7392 // declaration from the class definition, and isVirtual() is
7413 // FIXME: Shouldn't we be able to perform this check even when the class
7462 // the lexical context is the class, because in this case this is done
7481 // the function returns a UDT (class, struct, or union type) that is not C
7664 class SelfReferenceChecker
7957 // The variable can not have an abstract class type.
7975 // C++ [class.static.data]p4
7977 // enumeration type, its declaration in the class definition can
7985 // data members we also need to check whether there was an in-class
8135 // This is an in-class initialization for a static data member, e.g.,
8141 // C++ [class.mem]p4:
8146 // C++11 [class.static.data]p3:
8148 // enumeration type, its declaration in the class definition can
8151 // data member of literal type can be declared in the class definition
8176 // in-class initializer cannot be volatile.
8267 // class type.
8336 // C++11 [class.static.data]p3: A static data member can be declared with
8359 // that has an in-class initializer, so we type-check this like
8393 // storage-class specifier or with the storage-class specifier "static",
8459 // The variable can not have an abstract class type.
8473 // ill-formed unless the variable has scalar type, class type with a
8491 // object is of (possibly cv-qualified) non-POD class type (or
8493 // the object is of const-qualified type, the underlying class
8531 // for-range-declaration cannot be given a storage class specifier.
8552 llvm_unreachable("Unexpected storage class");
8697 // If there's a #pragma GCC visibility in scope, and this isn't a class
8936 // looking like class members in C++.
9062 // Parameters can not be abstract class types.
9064 // the class has been completely parsed.
9336 // Microsoft accepts dllimport for functions defined within class scope.
9481 // defined at class scope, warn about this non standard construct.
9822 // If the typedef declaration defines an unnamed class (or
9824 // to be that class type (or enum type) is used to denote the
9825 // class type (or enum type) for linkage purposes only.
9924 /// \brief Determine if tag kind is a class-key compatible with
9925 /// class for redeclaration (class, struct, or __interface).
9942 // The class-key or enum keyword present in the
9946 // elaborated-type-specifier that declares a class-name or
9947 // friend class since it can be construed as referring to the
9948 // definition of the class. Thus, in any
9950 // refer to an enumeration (7.2), the union class-key shall be
9951 // used to refer to a union (clause 9), and either the class or
9952 // struct class-key shall be used to refer to a class (clause 9)
9953 // declared using the class or struct class-key.
9960 // Warn about the struct/class tag mismatch.
10071 // This is a declaration or definition of a class template (which may
10143 // If this is a friend or a reference to a class in a dependent
10288 // class-key identifier
10293 // declared as a class-name in the namespace that contains
10296 // non-class, non-function-prototype scope that contains the
10327 // If a friend declaration in a non-local class first declares a
10328 // class or function, the friend class or function is a member of
10406 // the 'class' keyword is not necessary and not permitted.
10429 // C++11 [class.mem]p1:
10431 // except that a nested class or member class template can be declared
10636 // struct/union/class
10704 // If this is a specialization of a member class (of a class template),
10825 // C++ [class]p2:
10826 // [...] The class-name is also inserted into the scope of the
10827 // class itself; this is known as the injected-class-name. For
10828 // purposes of access checking, the injected-class-name is treated
10843 "Broken injected-class-name");
11170 // Fields can not have abstract class types
11222 // C++ [class.union]p1: An object of a class with a non-trivial
11232 // C++ [class.union]p1: If a union contains a member of reference type,
11341 /// ActOnIvar - Each ivar field of an objective-c class is passed into this
11394 // Case of ivar declared in an implementation. Context is that of its class.
11396 assert(EnclosingContext && "Implementation has no class interface!");
11455 /// class and class extensions. For every class \@interface and class
11578 // as the sole element of a struct/class.
11631 // If this is a struct/class and this is not the last element, reject
11651 // Ivars can not have abstract class types
11734 // Add any implicitly-declared members to this class.
11755 // C++ [class.virtual]p2:
11756 // In a derived class, if a virtual member function of a base
11757 // class subobject has more than one final overrider the
11827 // Add ivar's to class's DeclContext.
11848 // case of ivars in class extension; all other cases have been
11850 // FIXME. Class extension does not have a LocEnd field.
11852 // Add ivar's to class extension's DeclContext.
12140 // C++ [class.mem]p15:
12141 // If T is the name of a class, then each of the following shall have a name
12143 // - every enumerator of every member of class T that is an unscoped