From cb92a118145c2a425666068d37c4049c38e24914 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 2 Aug 2007 21:47:28 +0000 Subject: [PATCH] Minor comment improvements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40760 91177308-0d34-0410-b5e6-96231b3b80d8 --- AST/Expr.cpp | 4 ++++ include/clang/AST/Expr.h | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/AST/Expr.cpp b/AST/Expr.cpp index 44e8271bdb..20168b7840 100644 --- a/AST/Expr.cpp +++ b/AST/Expr.cpp @@ -583,6 +583,8 @@ bool Expr::isNullPointerConstant(ASTContext &Ctx) const { return isIntegerConstantExpr(Val, Ctx, 0, true) && Val == 0; } +/// getComponentType - Determine whether the components of this access are +/// "point" "color" or "texture" elements. OCUVectorComponent::ComponentType OCUVectorComponent::getComponentType() const { // derive the component type, no need to waste space. const char *compStr = Accessor.getName(); @@ -593,6 +595,8 @@ OCUVectorComponent::ComponentType OCUVectorComponent::getComponentType() const { assert(0 && "getComponentType(): Illegal accessor"); } +/// containsDuplicateComponents - Return true if any element access is +/// repeated. bool OCUVectorComponent::containsDuplicateComponents() const { const char *compStr = Accessor.getName(); unsigned length = strlen(compStr); diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h index 32f4053c24..1b5dbe7476 100644 --- a/include/clang/AST/Expr.h +++ b/include/clang/AST/Expr.h @@ -463,7 +463,9 @@ public: static bool classof(const MemberExpr *) { return true; } }; -/// OCUVectorComponent +/// OCUVectorComponent - This represents access to specific components of a +/// vector, and may occur on the left hand side or right hand side. For example +/// the following is legal: "V.xy = V.zw" if V is a 4 element ocu vector. /// class OCUVectorComponent : public Expr { Expr *Base; @@ -471,18 +473,25 @@ class OCUVectorComponent : public Expr { SourceLocation AccessorLoc; public: enum ComponentType { - Point, - Color, - Texture + Point, // xywz + Color, // rgba + Texture // uv }; OCUVectorComponent(QualType ty, Expr *base, IdentifierInfo &accessor, SourceLocation loc) : Expr(OCUVectorComponentClass, ty), Base(base), Accessor(accessor), AccessorLoc(loc) {} - Expr *getBase() const { return Base; } - IdentifierInfo & getAccessor() const { return Accessor; } + const Expr *getBase() const { return Base; } + Expr *getBase() { return Base; } + + IdentifierInfo &getAccessor() const { return Accessor; } + + /// getComponentType - Determine whether the components of this access are + /// "point" "color" or "texture" elements. ComponentType getComponentType() const; + /// containsDuplicateComponents - Return true if any element access is + /// repeated. bool containsDuplicateComponents() const; virtual SourceRange getSourceRange() const { -- 2.40.0