Documentation cleanup:
* Escaped "::" and "<" as needed in Doxygen comments; * Marked up code examples with \code...\endcode; * Documented a \param that is current, instead of a few that aren't; * Fixed up some \file and \brief comments. llvm-svn: 158562
This commit is contained in:
@@ -9973,7 +9973,7 @@ Decl *Sema::ActOnTemplatedFriendTag(Scope *S, SourceLocation FriendLoc,
|
|||||||
/// friend class A<T>::B<unsigned>;
|
/// friend class A<T>::B<unsigned>;
|
||||||
/// We permit this as a special case; if there are any template
|
/// We permit this as a special case; if there are any template
|
||||||
/// parameters present at all, require proper matching, i.e.
|
/// parameters present at all, require proper matching, i.e.
|
||||||
/// template <> template <class T> friend class A<int>::B;
|
/// template <> template \<class T> friend class A<int>::B;
|
||||||
Decl *Sema::ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
|
Decl *Sema::ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
|
||||||
MultiTemplateParamsArg TempParams) {
|
MultiTemplateParamsArg TempParams) {
|
||||||
SourceLocation Loc = DS.getLocStart();
|
SourceLocation Loc = DS.getLocStart();
|
||||||
|
|||||||
@@ -6,10 +6,9 @@
|
|||||||
// License. See LICENSE.TXT for details.
|
// License. See LICENSE.TXT for details.
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
//
|
|
||||||
// This file implements semantic analysis for C++ expressions.
|
// \file
|
||||||
//
|
// \brief Implements semantic analysis for C++ expressions.
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
#include "clang/Sema/SemaInternal.h"
|
#include "clang/Sema/SemaInternal.h"
|
||||||
#include "clang/Sema/DeclSpec.h"
|
#include "clang/Sema/DeclSpec.h"
|
||||||
@@ -934,7 +933,7 @@ static bool doesUsualArrayDeleteWantSize(Sema &S, SourceLocation loc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// \brief Parsed a C++ 'new' expression (C++ 5.3.4).
|
/// \brief Parsed a C++ 'new' expression (C++ 5.3.4).
|
||||||
|
///
|
||||||
/// E.g.:
|
/// E.g.:
|
||||||
/// @code new (memory) int[size][4] @endcode
|
/// @code new (memory) int[size][4] @endcode
|
||||||
/// or
|
/// or
|
||||||
@@ -947,10 +946,8 @@ static bool doesUsualArrayDeleteWantSize(Sema &S, SourceLocation loc,
|
|||||||
/// \param PlacementRParen Closing paren of the placement arguments.
|
/// \param PlacementRParen Closing paren of the placement arguments.
|
||||||
/// \param TypeIdParens If the type is in parens, the source range.
|
/// \param TypeIdParens If the type is in parens, the source range.
|
||||||
/// \param D The type to be allocated, as well as array dimensions.
|
/// \param D The type to be allocated, as well as array dimensions.
|
||||||
/// \param ConstructorLParen Opening paren of the constructor args, empty if
|
/// \param Initializer The initializing expression or initializer-list, or null
|
||||||
/// initializer-list syntax is used.
|
/// if there is none.
|
||||||
/// \param ConstructorArgs Constructor/initialization arguments.
|
|
||||||
/// \param ConstructorRParen Closing paren of the constructor args.
|
|
||||||
ExprResult
|
ExprResult
|
||||||
Sema::ActOnCXXNew(SourceLocation StartLoc, bool UseGlobal,
|
Sema::ActOnCXXNew(SourceLocation StartLoc, bool UseGlobal,
|
||||||
SourceLocation PlacementLParen, MultiExprArg PlacementArgs,
|
SourceLocation PlacementLParen, MultiExprArg PlacementArgs,
|
||||||
|
|||||||
@@ -5790,14 +5790,17 @@ Sema::CheckSpecializationInstantiationRedecl(SourceLocation NewLoc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// \brief Perform semantic analysis for the given dependent function
|
/// \brief Perform semantic analysis for the given dependent function
|
||||||
/// template specialization. The only possible way to get a dependent
|
/// template specialization.
|
||||||
/// function template specialization is with a friend declaration,
|
|
||||||
/// like so:
|
|
||||||
///
|
///
|
||||||
/// template <class T> void foo(T);
|
/// The only possible way to get a dependent function template specialization
|
||||||
/// template <class T> class A {
|
/// is with a friend declaration, like so:
|
||||||
|
///
|
||||||
|
/// \code
|
||||||
|
/// template \<class T> void foo(T);
|
||||||
|
/// template \<class T> class A {
|
||||||
/// friend void foo<>(T);
|
/// friend void foo<>(T);
|
||||||
/// };
|
/// };
|
||||||
|
/// \endcode
|
||||||
///
|
///
|
||||||
/// There really isn't any useful analysis we can do here, so we
|
/// There really isn't any useful analysis we can do here, so we
|
||||||
/// just store the information.
|
/// just store the information.
|
||||||
|
|||||||
@@ -3240,8 +3240,8 @@ DeclContext *Sema::FindInstantiatedContext(SourceLocation Loc, DeclContext* DC,
|
|||||||
///
|
///
|
||||||
/// In the instantiation of X<int>::getKind(), we need to map the
|
/// In the instantiation of X<int>::getKind(), we need to map the
|
||||||
/// EnumConstantDecl for KnownValue (which refers to
|
/// EnumConstantDecl for KnownValue (which refers to
|
||||||
/// X<T>::\<Kind>::KnownValue) to its instantiation
|
/// X<T>::\<Kind>::\KnownValue) to its instantiation
|
||||||
/// (X<int>::\<Kind>::KnownValue). InstantiateCurrentDeclRef() performs
|
/// (X<int>::\<Kind>\::KnownValue). InstantiateCurrentDeclRef() performs
|
||||||
/// this mapping from within the instantiation of X<int>.
|
/// this mapping from within the instantiation of X<int>.
|
||||||
NamedDecl *Sema::FindInstantiatedDecl(SourceLocation Loc, NamedDecl *D,
|
NamedDecl *Sema::FindInstantiatedDecl(SourceLocation Loc, NamedDecl *D,
|
||||||
const MultiLevelTemplateArgumentList &TemplateArgs) {
|
const MultiLevelTemplateArgumentList &TemplateArgs) {
|
||||||
|
|||||||
Reference in New Issue
Block a user