Modify how CBE handles #lines.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26990 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Laskey 2006-03-23 18:08:29 +00:00
parent b8509c5752
commit 580418e082
2 changed files with 10 additions and 18 deletions

View 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;
}
}

View 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;
}
}