diff options
| -rw-r--r-- | clang/include/clang/Frontend/DocumentXML.h | 15 | ||||
| -rw-r--r-- | clang/lib/Frontend/DeclXML.cpp | 3 | ||||
| -rw-r--r-- | clang/test/Coverage/ast-printing.cpp | 2 | 
3 files changed, 16 insertions, 4 deletions
diff --git a/clang/include/clang/Frontend/DocumentXML.h b/clang/include/clang/Frontend/DocumentXML.h index 5227c12c2ca..73d892105f2 100644 --- a/clang/include/clang/Frontend/DocumentXML.h +++ b/clang/include/clang/Frontend/DocumentXML.h @@ -146,12 +146,23 @@ inline void DocumentXML::initialize(ASTContext &Context) {  //---------------------------------------------------------  template<class T>  inline void DocumentXML::addAttribute(const char* pName, const T& value) { -  Out << ' ' << pName << "=\"" << value << "\""; +  std::string repr; +  { +    llvm::raw_string_ostream buf(repr); +    buf << value; +    buf.flush(); +  } +   +  Out << ' ' << pName << "=\""  +      << DocumentXML::escapeString(repr.c_str(), repr.size()) +      << "\"";  }  //---------------------------------------------------------  inline void DocumentXML::addPtrAttribute(const char* pName, const char* text) { -  Out << ' ' << pName << "=\"" << text << "\""; +  Out << ' ' << pName << "=\""  +      << DocumentXML::escapeString(text, strlen(text)) +      << "\"";  }  //--------------------------------------------------------- diff --git a/clang/lib/Frontend/DeclXML.cpp b/clang/lib/Frontend/DeclXML.cpp index 3ae25f9b7da..97a7f555839 100644 --- a/clang/lib/Frontend/DeclXML.cpp +++ b/clang/lib/Frontend/DeclXML.cpp @@ -49,7 +49,8 @@ class DocumentXML::DeclPrinter : public DeclVisitor<DocumentXML::DeclPrinter> {      addSubNodes(cast<RecordDecl>(RD));      if (RD->isDefinition()) { -      Doc.addAttribute("num_bases", RD->getNumBases()); +      // FIXME: This breaks XML generation +      //Doc.addAttribute("num_bases", RD->getNumBases());        for (CXXRecordDecl::base_class_iterator                base = RD->bases_begin(), diff --git a/clang/test/Coverage/ast-printing.cpp b/clang/test/Coverage/ast-printing.cpp index 1a75fb4c632..0de56422895 100644 --- a/clang/test/Coverage/ast-printing.cpp +++ b/clang/test/Coverage/ast-printing.cpp @@ -1,7 +1,7 @@  // RUN: %clang_cc1 -fsyntax-only %s  // RUN: %clang_cc1 -ast-print %s  // RUN: %clang_cc1 -ast-dump %s -// FIXME: %clang_cc1 -ast-print-xml -o %t %s +// RUN: %clang_cc1 -ast-print-xml -o %t %s  // RUN: %clang_cc1 -print-decl-contexts %s  // RUN: %clang_cc1 -fdump-record-layouts %s  | 

