[Statepoints] Support for "patchable" statepoints.
[oota-llvm.git] / lib / CodeGen / AsmPrinter / AsmPrinterHandler.h
index ff2dd4a3b608e6ec1fd12a98a26a511d4231ab76..f1efe9d835e05cc409b6091012b633166d6f2795 100644 (file)
@@ -12,8 +12,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef CODEGEN_ASMPRINTER_ASMPRINTERHANDLER_H__
-#define CODEGEN_ASMPRINTER_ASMPRINTERHANDLER_H__
+#ifndef LLVM_LIB_CODEGEN_ASMPRINTER_ASMPRINTERHANDLER_H
+#define LLVM_LIB_CODEGEN_ASMPRINTER_ASMPRINTERHANDLER_H
 
 #include "llvm/Support/DataTypes.h"
 
@@ -27,7 +27,7 @@ class MCSymbol;
 /// or EH information.
 class AsmPrinterHandler {
 public:
-  virtual ~AsmPrinterHandler() {}
+  virtual ~AsmPrinterHandler();
 
   /// \brief For symbols that have a size designated (e.g. common symbols),
   /// this tracks that size.
@@ -37,9 +37,14 @@ public:
   virtual void endModule() = 0;
 
   /// \brief Gather pre-function debug information.
-  /// Every beginFunction(MF) call should be followed by an endFunction(MF) call.
+  /// Every beginFunction(MF) call should be followed by an endFunction(MF)
+  /// call.
   virtual void beginFunction(const MachineFunction *MF) = 0;
 
+  // \brief Emit any of function marker (like .cfi_endproc). This is called
+  // before endFunction and cannot switch sections.
+  virtual void markFunctionEnd();
+
   /// \brief Gather post-function debug information.
   /// Please note that some AsmPrinter implementations may not call
   /// beginFunction at all.