Modify how CBE handles #lines.
authorJim Laskey <jlaskey@mac.com>
Thu, 23 Mar 2006 18:08:29 +0000 (18:08 +0000)
committerJim Laskey <jlaskey@mac.com>
Thu, 23 Mar 2006 18:08:29 +0000 (18:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26990 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/CBackend/CBackend.cpp
lib/Target/CBackend/Writer.cpp

index 53893870df37c26811fa0c5f3b484cb46ff3d03e..4e86c6fec0d576ec79d0e981396b6a35ee98ef8e 100644 (file)
@@ -21,6 +21,7 @@
 #include "llvm/PassManager.h"
 #include "llvm/SymbolTable.h"
 #include "llvm/Intrinsics.h"
+#include "llvm/IntrinsicInst.h"
 #include "llvm/Analysis/ConstantsScanner.h"
 #include "llvm/Analysis/FindUsedTypes.h"
 #include "llvm/Analysis/LoopInfo.h"
@@ -1715,17 +1716,12 @@ void CWriter::visitCallInst(CallInst &I) {
       case Intrinsic::dbg_stoppoint: {
         // If we use writeOperand directly we get a "u" suffix which is rejected
         // by gcc.
-        ConstantUInt *SI = cast<ConstantUInt>(I.getOperand(1));
-        GlobalVariable *GV = cast<GlobalVariable>(I.getOperand(3));
-        ConstantStruct *CS = cast<ConstantStruct>(GV->getInitializer());
-        std::string FileName = CS->getOperand(4)->getStringValue();
-        std::string Directory = CS->getOperand(5)->getStringValue();
+        DbgStopPointInst &SPI = cast<DbgStopPointInst>(I);
 
         Out << "\n#line "
-            << SI->getValue()
-            << " \"" << Directory << FileName << "\"\n";
-        // Need to set result.
-        Out << "0";
+            << SPI.getLine()
+            << " \"" << SPI.getDirectory()
+            << SPI.getFileName() << "\"\n";
         return;
       }
       }
index 53893870df37c26811fa0c5f3b484cb46ff3d03e..4e86c6fec0d576ec79d0e981396b6a35ee98ef8e 100644 (file)
@@ -21,6 +21,7 @@
 #include "llvm/PassManager.h"
 #include "llvm/SymbolTable.h"
 #include "llvm/Intrinsics.h"
+#include "llvm/IntrinsicInst.h"
 #include "llvm/Analysis/ConstantsScanner.h"
 #include "llvm/Analysis/FindUsedTypes.h"
 #include "llvm/Analysis/LoopInfo.h"
@@ -1715,17 +1716,12 @@ void CWriter::visitCallInst(CallInst &I) {
       case Intrinsic::dbg_stoppoint: {
         // If we use writeOperand directly we get a "u" suffix which is rejected
         // by gcc.
-        ConstantUInt *SI = cast<ConstantUInt>(I.getOperand(1));
-        GlobalVariable *GV = cast<GlobalVariable>(I.getOperand(3));
-        ConstantStruct *CS = cast<ConstantStruct>(GV->getInitializer());
-        std::string FileName = CS->getOperand(4)->getStringValue();
-        std::string Directory = CS->getOperand(5)->getStringValue();
+        DbgStopPointInst &SPI = cast<DbgStopPointInst>(I);
 
         Out << "\n#line "
-            << SI->getValue()
-            << " \"" << Directory << FileName << "\"\n";
-        // Need to set result.
-        Out << "0";
+            << SPI.getLine()
+            << " \"" << SPI.getDirectory()
+            << SPI.getFileName() << "\"\n";
         return;
       }
       }