aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/CBackend/CBackend.cpp14
-rw-r--r--lib/Target/CBackend/Writer.cpp14
2 files changed, 10 insertions, 18 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index 5389387..4e86c6f 100644
--- a/lib/Target/CBackend/CBackend.cpp
+++ b/lib/Target/CBackend/CBackend.cpp
@@ -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;
}
}
diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp
index 5389387..4e86c6f 100644
--- a/lib/Target/CBackend/Writer.cpp
+++ b/lib/Target/CBackend/Writer.cpp
@@ -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;
}
}