From 4d0ac88428b3ed7c6f3a2f4e758ea5424ecd70ae Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 3 Aug 2007 16:00:20 +0000 Subject: [PATCH] add OCUVectorComponent::getNumComponents() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40778 91177308-0d34-0410-b5e6-96231b3b80d8 --- AST/Expr.cpp | 7 ++++++- include/clang/AST/Expr.h | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/AST/Expr.cpp b/AST/Expr.cpp index 9b5fc78d74..625634d787 100644 --- a/AST/Expr.cpp +++ b/AST/Expr.cpp @@ -583,6 +583,11 @@ bool Expr::isNullPointerConstant(ASTContext &Ctx) const { return isIntegerConstantExpr(Val, Ctx, 0, true) && Val == 0; } +unsigned OCUVectorComponent::getNumComponents() const { + return strlen(Accessor.getName()); +} + + /// getComponentType - Determine whether the components of this access are /// "point" "color" or "texture" elements. OCUVectorComponent::ComponentType OCUVectorComponent::getComponentType() const { @@ -615,7 +620,7 @@ bool OCUVectorComponent::containsDuplicateComponents() const { /// getEncodedElementAccess - We encode fields with two bits per component. unsigned OCUVectorComponent::getEncodedElementAccess() const { const char *compStr = Accessor.getName(); - unsigned length = strlen(compStr); + unsigned length = getNumComponents(); unsigned Result = 0; diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h index c2f147b2de..ab7b417148 100644 --- a/include/clang/AST/Expr.h +++ b/include/clang/AST/Expr.h @@ -486,6 +486,9 @@ public: IdentifierInfo &getAccessor() const { return Accessor; } + /// getNumComponents - Get the number of components being selected. + unsigned getNumComponents() const; + /// getComponentType - Determine whether the components of this access are /// "point" "color" or "texture" elements. ComponentType getComponentType() const;