[llvm-commits] [lld] r171918 - /lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp

Nick Kledzik kledzik at apple.com
Tue Jan 8 15:51:04 PST 2013


Author: kledzik
Date: Tue Jan  8 17:51:03 2013
New Revision: 171918

URL: http://llvm.org/viewvc/llvm-project?rev=171918&view=rev
Log:
add extra namespace for gcc-4.7 compatibility

Modified:
    lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp

Modified: lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp?rev=171918&r1=171917&r2=171918&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp (original)
+++ lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp Tue Jan  8 17:51:03 2013
@@ -259,22 +259,33 @@
   const lld::File    *_content;
 };
 
+
 // The content bytes in a DefinedAtom are just uint8_t but we want
 // special formatting, so define a strong type.
-LLVM_YAML_STRONG_TYPEDEF(uint8_t, ImplicitHex8);
+LLVM_YAML_STRONG_TYPEDEF(uint8_t, ImplicitHex8)
 
 // SharedLibraryAtoms have a bool canBeNull() method which we'd like to be
 // more readable than just true/false.
-LLVM_YAML_STRONG_TYPEDEF(bool, ShlibCanBeNull);
+LLVM_YAML_STRONG_TYPEDEF(bool, ShlibCanBeNull)
 
 // lld::Reference::Kind is a typedef of int32.  We need a stronger
 // type to make template matching work, so invent RefKind.
-LLVM_YAML_STRONG_TYPEDEF(lld::Reference::Kind, RefKind);
+LLVM_YAML_STRONG_TYPEDEF(lld::Reference::Kind, RefKind)
 
 
 } // namespace anon
 
 
+LLVM_YAML_IS_SEQUENCE_VECTOR(ArchMember);
+LLVM_YAML_IS_SEQUENCE_VECTOR(const lld::Reference*)
+
+// Always write DefinedAtoms content bytes as a flow sequence.
+LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(ImplicitHex8);
+
+// for compatibility with gcc-4.7 in C++11 mode, add extra namespace
+namespace llvm {
+namespace yaml { 
+
 // This is a custom formatter for RefKind
 template<>
 struct ScalarTraits<RefKind> {
@@ -531,7 +542,6 @@
   }
 };
 
-LLVM_YAML_IS_SEQUENCE_VECTOR(ArchMember);
 
 
 // Declare that an AtomList is a yaml sequence.
@@ -567,9 +577,6 @@
   }
 };
 
-// Always write DefinedAtoms content bytes as a flow sequence.
-LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(ImplicitHex8);
-
 
 // YAML conversion for std::vector<const lld::File*>
 template<>
@@ -808,7 +815,6 @@
   }
 };
 
-LLVM_YAML_IS_SEQUENCE_VECTOR(const lld::Reference*)
 
 
 // YAML conversion for const lld::DefinedAtom*
@@ -973,39 +979,6 @@
 
 
 
-inline 
-const lld::File*
-MappingTraits<const lld::File*>::NormalizedFile::denormalize(IO &io) {
-  typedef MappingTraits<const lld::DefinedAtom*>::NormalizedAtom NormalizedAtom;
-  
-  RefNameResolver nameResolver(this, io);
-  // Now that all atoms are parsed, references can be bound.
-  for (const lld::DefinedAtom *a : this->defined() ) {
-    NormalizedAtom *normAtom = (NormalizedAtom*)a;
-    normAtom->bind(nameResolver);
-  }
-  return this;
-}
-
-inline
-void MappingTraits<const lld::DefinedAtom*>::
-              NormalizedAtom::bind(const RefNameResolver &resolver) {
-  typedef MappingTraits<const lld::Reference*>::NormalizedReference 
-                                                            NormalizedReference;
-  for (const lld::Reference *ref : _references) {
-    NormalizedReference *normRef = (NormalizedReference*)ref;
-    normRef->bind(resolver);
-  }
-}
-
-inline
-void MappingTraits<const lld::Reference*>::
-         NormalizedReference::bind(const RefNameResolver &resolver) {
-  _target = resolver.lookup(_targetName);
-}
-
-
-
 // YAML conversion for const lld::UndefinedAtom*
 template <>
 struct MappingTraits<const lld::UndefinedAtom*> {
@@ -1200,6 +1173,9 @@
   }
 };
 
+} // namespace llvm
+} // namespace yaml 
+
 
 RefNameResolver::RefNameResolver(const lld::File *file, IO &io) : _io(io) {
   typedef MappingTraits<const lld::DefinedAtom*>::NormalizedAtom NormalizedAtom;
@@ -1228,6 +1204,39 @@
 }
 
 
+
+inline 
+const lld::File*
+MappingTraits<const lld::File*>::NormalizedFile::denormalize(IO &io) {
+  typedef MappingTraits<const lld::DefinedAtom*>::NormalizedAtom NormalizedAtom;
+  
+  RefNameResolver nameResolver(this, io);
+  // Now that all atoms are parsed, references can be bound.
+  for (const lld::DefinedAtom *a : this->defined() ) {
+    NormalizedAtom *normAtom = (NormalizedAtom*)a;
+    normAtom->bind(nameResolver);
+  }
+  return this;
+}
+
+inline
+void MappingTraits<const lld::DefinedAtom*>::
+              NormalizedAtom::bind(const RefNameResolver &resolver) {
+  typedef MappingTraits<const lld::Reference*>::NormalizedReference 
+                                                            NormalizedReference;
+  for (const lld::Reference *ref : _references) {
+    NormalizedReference *normRef = (NormalizedReference*)ref;
+    normRef->bind(resolver);
+  }
+}
+
+inline
+void MappingTraits<const lld::Reference*>::
+         NormalizedReference::bind(const RefNameResolver &resolver) {
+  _target = resolver.lookup(_targetName);
+}
+
+
 inline
 llvm::StringRef MappingTraits<const lld::Reference*>::NormalizedReference::
                                 targetName(IO &io, const lld::Reference *ref) {





More information about the llvm-commits mailing list