LLVM. AddressSanitizer.Is a value operand of store Instruction function parameter

220
28 февраля 2018, 09:30

В файле AddressSanitizer.cpp есть функция AddressSanitizer::instrumentStoreInstruction(...)

 void AddressSanitizer::instrumentStoreInstruction(StoreInst *S, Instruction *I) {
  assert(nullptr != S);
  assert(nullptr != I);
  Value* V = S->getValueOperand();
  assert(nullptr != V);
  Value* P = S->getPointerOperand();
  assert(nullptr != P);
  DEBUG(dbgs() << "ASAN Store Value : " << " " <<*V << "\n");
  DEBUG(dbgs() << "ASAN Store Pointer" << " " <<*P << "\n");
  Value* vL = 0;
  if (isa<Instruction>(V)) {
    vL = getStoreInstructionValueShadowBit(V, I);
    handleStorePointerOperand(P, I, vL);
  } else if (isa<ConstantExpr>(V)) {
    instrumentConstantExprStoreInstruction(V, P, I);
  } else if (isa<ConstantInt>(V) || isa<ConstantFP>(V)) {
    //TODO: need to change to ConstantData after LLVM porting
    instrumentConstantIntStoreInstruction(V, P, I);
  }
}

Нужно в нем добавить проверку является ли V параметром функции. Как это реализовать?

READ ALSO
Пауза консоли в C++

Пауза консоли в C++

Какие функции в Visual Studio (помимо system("pause");) останавливают закрытие консоли

245
Собрать и объяснить код (пример с сайта)

Собрать и объяснить код (пример с сайта)

Имееться код hash-алгоритмаТак как его надо исследовать, необходимо его запустить (для начала)

257
Парсинг XSD С++

Парсинг XSD С++

Привет всемВозникла задача, на основе XML и XSD динамически подгружать интерфейс

199
Раскрытие макросов

Раскрытие макросов

Есть маленький вопрос по раскрытиям макросов

191