[cfe-commits] r96557 - in /cfe/trunk: lib/AST/ASTImporter.cpp test/ASTMerge/Inputs/exprs1.c test/ASTMerge/Inputs/exprs2.c test/ASTMerge/exprs.c

Douglas Gregor dgregor at apple.com
Wed Feb 17 18:21:23 PST 2010


Author: dgregor
Date: Wed Feb 17 20:21:22 2010
New Revision: 96557

URL: http://llvm.org/viewvc/llvm-project?rev=96557&view=rev
Log:
AST import for character literals

Added:
    cfe/trunk/test/ASTMerge/Inputs/exprs1.c
    cfe/trunk/test/ASTMerge/Inputs/exprs2.c
    cfe/trunk/test/ASTMerge/exprs.c
Modified:
    cfe/trunk/lib/AST/ASTImporter.cpp

Modified: cfe/trunk/lib/AST/ASTImporter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=96557&r1=96556&r2=96557&view=diff

==============================================================================
--- cfe/trunk/lib/AST/ASTImporter.cpp (original)
+++ cfe/trunk/lib/AST/ASTImporter.cpp Wed Feb 17 20:21:22 2010
@@ -108,6 +108,7 @@
     // Importing expressions
     Expr *VisitExpr(Expr *E);
     Expr *VisitIntegerLiteral(IntegerLiteral *E);
+    Expr *VisitCharacterLiteral(CharacterLiteral *E);
     Expr *VisitImplicitCastExpr(ImplicitCastExpr *E);
   };
 }
@@ -2598,6 +2599,16 @@
     IntegerLiteral(E->getValue(), T, Importer.Import(E->getLocation()));
 }
 
+Expr *ASTNodeImporter::VisitCharacterLiteral(CharacterLiteral *E) {
+  QualType T = Importer.Import(E->getType());
+  if (T.isNull())
+    return 0;
+  
+  return new (Importer.getToContext()) CharacterLiteral(E->getValue(), 
+                                                        E->isWide(), T,
+                                          Importer.Import(E->getLocation()));
+}
+
 Expr *ASTNodeImporter::VisitImplicitCastExpr(ImplicitCastExpr *E) {
   QualType T = Importer.Import(E->getType());
   if (T.isNull())

Added: cfe/trunk/test/ASTMerge/Inputs/exprs1.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ASTMerge/Inputs/exprs1.c?rev=96557&view=auto

==============================================================================
--- cfe/trunk/test/ASTMerge/Inputs/exprs1.c (added)
+++ cfe/trunk/test/ASTMerge/Inputs/exprs1.c Wed Feb 17 20:21:22 2010
@@ -0,0 +1,5 @@
+// Matching
+enum E0 {
+  E0_Val0 = 'a'
+};
+

Added: cfe/trunk/test/ASTMerge/Inputs/exprs2.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ASTMerge/Inputs/exprs2.c?rev=96557&view=auto

==============================================================================
--- cfe/trunk/test/ASTMerge/Inputs/exprs2.c (added)
+++ cfe/trunk/test/ASTMerge/Inputs/exprs2.c Wed Feb 17 20:21:22 2010
@@ -0,0 +1,5 @@
+// Matching
+enum E0 {
+  E0_Val0 = 'a'
+};
+

Added: cfe/trunk/test/ASTMerge/exprs.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ASTMerge/exprs.c?rev=96557&view=auto

==============================================================================
--- cfe/trunk/test/ASTMerge/exprs.c (added)
+++ cfe/trunk/test/ASTMerge/exprs.c Wed Feb 17 20:21:22 2010
@@ -0,0 +1,4 @@
+// RUN: %clang_cc1 -emit-pch -o %t.1.ast %S/Inputs/exprs1.c
+// RUN: %clang_cc1 -emit-pch -o %t.2.ast %S/Inputs/exprs2.c
+// RUN: %clang_cc1 -ast-merge %t.1.ast -ast-merge %t.2.ast -fsyntax-only -verify %s
+





More information about the cfe-commits mailing list