forked from OSchip/llvm-project
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:
parent
a9acafa64e
commit
f14a6e5f13
|
@ -9973,7 +9973,7 @@ Decl *Sema::ActOnTemplatedFriendTag(Scope *S, SourceLocation FriendLoc,
|
|||
/// friend class A<T>::B<unsigned>;
|
||||
/// We permit this as a special case; if there are any template
|
||||
/// 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,
|
||||
MultiTemplateParamsArg TempParams) {
|
||||
SourceLocation Loc = DS.getLocStart();
|
||||
|
|
|
@ -6,10 +6,9 @@
|
|||
// 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/DeclSpec.h"
|
||||
|
@ -934,7 +933,7 @@ static bool doesUsualArrayDeleteWantSize(Sema &S, SourceLocation loc,
|
|||
}
|
||||
|
||||
/// \brief Parsed a C++ 'new' expression (C++ 5.3.4).
|
||||
|
||||
///
|
||||
/// E.g.:
|
||||
/// @code new (memory) int[size][4] @endcode
|
||||
/// or
|
||||
|
@ -947,10 +946,8 @@ static bool doesUsualArrayDeleteWantSize(Sema &S, SourceLocation loc,
|
|||
/// \param PlacementRParen Closing paren of the placement arguments.
|
||||
/// \param TypeIdParens If the type is in parens, the source range.
|
||||
/// \param D The type to be allocated, as well as array dimensions.
|
||||
/// \param ConstructorLParen Opening paren of the constructor args, empty if
|
||||
/// initializer-list syntax is used.
|
||||
/// \param ConstructorArgs Constructor/initialization arguments.
|
||||
/// \param ConstructorRParen Closing paren of the constructor args.
|
||||
/// \param Initializer The initializing expression or initializer-list, or null
|
||||
/// if there is none.
|
||||
ExprResult
|
||||
Sema::ActOnCXXNew(SourceLocation StartLoc, bool UseGlobal,
|
||||
SourceLocation PlacementLParen, MultiExprArg PlacementArgs,
|
||||
|
@ -962,7 +959,7 @@ Sema::ActOnCXXNew(SourceLocation StartLoc, bool UseGlobal,
|
|||
// If the specified type is an array, unwrap it and save the expression.
|
||||
if (D.getNumTypeObjects() > 0 &&
|
||||
D.getTypeObject(0).Kind == DeclaratorChunk::Array) {
|
||||
DeclaratorChunk &Chunk = D.getTypeObject(0);
|
||||
DeclaratorChunk &Chunk = D.getTypeObject(0);
|
||||
if (TypeContainsAuto)
|
||||
return ExprError(Diag(Chunk.Loc, diag::err_new_array_of_auto)
|
||||
<< D.getSourceRange());
|
||||
|
|
|
@ -5790,14 +5790,17 @@ Sema::CheckSpecializationInstantiationRedecl(SourceLocation NewLoc,
|
|||
}
|
||||
|
||||
/// \brief Perform semantic analysis for the given dependent function
|
||||
/// template specialization. The only possible way to get a dependent
|
||||
/// function template specialization is with a friend declaration,
|
||||
/// like so:
|
||||
/// template specialization.
|
||||
///
|
||||
/// template <class T> void foo(T);
|
||||
/// template <class T> class A {
|
||||
/// The only possible way to get a dependent function template specialization
|
||||
/// is with a friend declaration, like so:
|
||||
///
|
||||
/// \code
|
||||
/// template \<class T> void foo(T);
|
||||
/// template \<class T> class A {
|
||||
/// friend void foo<>(T);
|
||||
/// };
|
||||
/// \endcode
|
||||
///
|
||||
/// There really isn't any useful analysis we can do here, so we
|
||||
/// 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
|
||||
/// EnumConstantDecl for KnownValue (which refers to
|
||||
/// X<T>::\<Kind>::KnownValue) to its instantiation
|
||||
/// (X<int>::\<Kind>::KnownValue). InstantiateCurrentDeclRef() performs
|
||||
/// X<T>::\<Kind>::\KnownValue) to its instantiation
|
||||
/// (X<int>::\<Kind>\::KnownValue). InstantiateCurrentDeclRef() performs
|
||||
/// this mapping from within the instantiation of X<int>.
|
||||
NamedDecl *Sema::FindInstantiatedDecl(SourceLocation Loc, NamedDecl *D,
|
||||
const MultiLevelTemplateArgumentList &TemplateArgs) {
|
||||
|
|
Loading…
Reference in New Issue