]> granicus.if.org Git - clang/commitdiff
teach child iterators to walk into the child string of an ObjCStringLiteral,
authorChris Lattner <sabre@nondot.org>
Wed, 18 Feb 2009 06:53:08 +0000 (06:53 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 18 Feb 2009 06:53:08 +0000 (06:53 +0000)
so it shows up in -ast-dump.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64901 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/ExprObjC.h
lib/AST/Expr.cpp

index 03d904d6fdac1d37b5fcabc7dcde8c1837512b07..9483833a6e7f0d0b580f3379a3cb038b91e1ed52 100644 (file)
@@ -26,15 +26,14 @@ namespace clang {
 /// ObjCStringLiteral, used for Objective-C string literals
 /// i.e. @"foo".
 class ObjCStringLiteral : public Expr {
-  StringLiteral *String;
+  Stmt *String;
   SourceLocation AtLoc;
 public:
   ObjCStringLiteral(StringLiteral *SL, QualType T, SourceLocation L)
     : Expr(ObjCStringLiteralClass, T), String(SL), AtLoc(L) {}
   
-  StringLiteral* getString() { return String; }
-
-  const StringLiteral* getString() const { return String; }
+  StringLiteral* getString() { return cast<StringLiteral>(String); }
+  const StringLiteral* getString() const { return cast<StringLiteral>(String); }
 
   SourceLocation getAtLoc() const { return AtLoc; }
 
index e436a41b550ecf3a797ca6ac3e2d62ca97447132..dec17493f42cd26fc0f76929290226e6941312f3 100644 (file)
@@ -1803,10 +1803,10 @@ Stmt::child_iterator ImplicitValueInitExpr::child_end() {
 
 // ObjCStringLiteral
 Stmt::child_iterator ObjCStringLiteral::child_begin() { 
-  return child_iterator();
+  return &String;
 }
 Stmt::child_iterator ObjCStringLiteral::child_end() {
-  return child_iterator();
+  return &String+1;
 }
 
 // ObjCEncodeExpr