Debug Info: Fix LTO type uniquing for C++ member declarations
[opencl/llvm.git] / lib / CodeGen / AsmPrinter / DwarfDebug.h
index bd1d304b71dcbff6f8ccd4a2fe4572e9f846b429..baf87323178d119bac99cc26555c0ea17d7e3d51 100644 (file)
@@ -353,6 +353,9 @@ class DwarfDebug : public AsmPrinterHandler {
   /// of in DwarfCompileUnit.
   DenseMap<const MDNode *, DIE *> MDTypeNodeToDieMap;
 
+  // Used to unique C++ member function declarations.
+  StringMap<const MDNode *> OdrMemberMap;
+
   // Stores the current file ID for a given compile unit.
   DenseMap<unsigned, unsigned> FileIDCUMap;
   // Source id map, i.e. CUID, source filename and directory,
@@ -702,6 +705,11 @@ public:
     return MDTypeNodeToDieMap.lookup(TypeMD);
   }
 
+  /// \brief Look up or create an entry in the OdrMemberMap.
+  const MDNode *&getOrCreateOdrMember(StringRef Key) {
+    return OdrMemberMap.GetOrCreateValue(Key).getValue();
+  }
+
   /// \brief Emit all Dwarf sections that should come prior to the
   /// content.
   void beginModule();