summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/AST/Expr.h32
1 files changed, 13 insertions, 19 deletions
diff --git a/clang/include/clang/AST/Expr.h b/clang/include/clang/AST/Expr.h
index 33f95afd32a..f78138c16d7 100644
--- a/clang/include/clang/AST/Expr.h
+++ b/clang/include/clang/AST/Expr.h
@@ -1369,31 +1369,25 @@ public:
/// Allow clients that need the byte representation, such as ASTWriterStmt
/// ::VisitStringLiteral(), access.
StringRef getBytes() const {
- // FIXME: StringRef may not be the right type to use as a result for this...
- assert((CharByteWidth==1 || CharByteWidth==2 || CharByteWidth==4)
- && "unsupported CharByteWidth");
- if (CharByteWidth==4) {
+ // FIXME: StringRef may not be the right type to use as a result for this.
+ if (CharByteWidth == 1)
+ return StringRef(StrData.asChar, getByteLength());
+ if (CharByteWidth == 4)
return StringRef(reinterpret_cast<const char*>(StrData.asUInt32),
getByteLength());
- } else if (CharByteWidth==2) {
- return StringRef(reinterpret_cast<const char*>(StrData.asUInt16),
- getByteLength());
- } else {
- return StringRef(StrData.asChar, getByteLength());
- }
+ assert(CharByteWidth == 2 && "unsupported CharByteWidth");
+ return StringRef(reinterpret_cast<const char*>(StrData.asUInt16),
+ getByteLength());
}
uint32_t getCodeUnit(size_t i) const {
- assert(i<Length && "out of bounds access");
- assert((CharByteWidth==1 || CharByteWidth==2 || CharByteWidth==4)
- && "unsupported CharByteWidth");
- if (CharByteWidth==4) {
- return StrData.asUInt32[i];
- } else if (CharByteWidth==2) {
- return StrData.asUInt16[i];
- } else {
+ assert(i < Length && "out of bounds access");
+ if (CharByteWidth == 1)
return static_cast<unsigned char>(StrData.asChar[i]);
- }
+ if (CharByteWidth == 4)
+ return StrData.asUInt32[i];
+ assert(CharByteWidth == 2 && "unsupported CharByteWidth");
+ return StrData.asUInt16[i];
}
unsigned getByteLength() const { return CharByteWidth*Length; }
OpenPOWER on IntegriCloud