[tsan] compile-time instrumentation: do not instrument a read if
[oota-llvm.git] / lib / DebugInfo / DWARFContext.h
index ead169ea7e0b07ca95bed362dd240bc8f7d2f4c1..d2e763a87a45469e2e1891c9dfc72cfd3f4cfd31 100644 (file)
@@ -53,14 +53,20 @@ public:
     return &CUs[index];
   }
 
+  /// Return the compile unit that includes an offset (relative to .debug_info).
+  DWARFCompileUnit *getCompileUnitForOffset(uint32_t offset);
+
   /// Get a pointer to the parsed DebugAbbrev object.
   const DWARFDebugAbbrev *getDebugAbbrev();
 
   /// Get a pointer to the parsed DebugAranges object.
   const DWARFDebugAranges *getDebugAranges();
 
-  /// Get a pointer to the parsed DWARFDebugLine object.
-  const DWARFDebugLine *getDebugLine();
+  /// Get a pointer to a parsed line table corresponding to a compile unit.
+  const DWARFDebugLine::LineTable *
+  getLineTableForCompileUnit(DWARFCompileUnit *cu);
+
+  virtual DILineInfo getLineInfoForAddress(uint64_t address);
 
   bool isLittleEndian() const { return IsLittleEndian; }
 
@@ -80,6 +86,7 @@ public:
 /// DWARFContext. It assumes all content is available in memory and stores
 /// pointers to it.
 class DWARFContextInMemory : public DWARFContext {
+  virtual void anchor();
   StringRef InfoSection;
   StringRef AbbrevSection;
   StringRef ARangeSection;