From 169022a56d62cdb2f15540a0c592c5f90fdb39cb Mon Sep 17 00:00:00 2001 From: Frank Busse Date: Thu, 25 Jun 2020 11:06:22 +0100 Subject: remove holes in Instruction-/FunctionInfoTable, add documentation --- include/klee/Module/InstructionInfoTable.h | 31 ++++++++++++++++++------------ lib/Module/InstructionInfoTable.cpp | 16 +++++++-------- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/include/klee/Module/InstructionInfoTable.h b/include/klee/Module/InstructionInfoTable.h index e3684802..3ba9528c 100644 --- a/include/klee/Module/InstructionInfoTable.h +++ b/include/klee/Module/InstructionInfoTable.h @@ -23,32 +23,39 @@ namespace llvm { namespace klee { - /* Stores debug information for a KInstruction */ + /// @brief InstructionInfo stores debug information for a KInstruction. struct InstructionInfo { + /// @brief The instruction id. unsigned id; - const std::string &file; + /// @brief Line number in source file. unsigned line; + /// @brief Column number in source file. unsigned column; + /// @brief Line number in generated assembly.ll. unsigned assemblyLine; + /// @brief Source file name. + const std::string &file; public: - InstructionInfo(unsigned _id, const std::string &_file, unsigned _line, - unsigned _column, unsigned _assemblyLine) - : id(_id), file(_file), line(_line), column(_column), - assemblyLine(_assemblyLine) {} + InstructionInfo(unsigned id, const std::string &file, unsigned line, + unsigned column, unsigned assemblyLine) + : id{id}, line{line}, column{column}, assemblyLine{assemblyLine}, file{file} {} }; - /* Stores debug information for a KInstruction */ + /// @brief FunctionInfo stores debug information for a KFunction. struct FunctionInfo { + /// @brief The function id. unsigned id; - const std::string &file; + /// @brief Line number in source file. unsigned line; + /// @brief Line number in generated assembly.ll. uint64_t assemblyLine; + /// @brief Source file name. + const std::string &file; public: - FunctionInfo(unsigned _id, const std::string &_file, unsigned _line, - uint64_t _assemblyLine) - : id(_id), file(_file), line(_line), assemblyLine(_assemblyLine) {} + FunctionInfo(unsigned id, const std::string &file, unsigned line, uint64_t assemblyLine) + : id{id}, line{line}, assemblyLine{assemblyLine}, file{file} {} FunctionInfo(const FunctionInfo &) = delete; FunctionInfo &operator=(FunctionInfo const &) = delete; @@ -65,7 +72,7 @@ namespace klee { std::vector> internedStrings; public: - InstructionInfoTable(const llvm::Module &m); + explicit InstructionInfoTable(const llvm::Module &m); unsigned getMaxID() const; const InstructionInfo &getInfo(const llvm::Instruction &) const; diff --git a/lib/Module/InstructionInfoTable.cpp b/lib/Module/InstructionInfoTable.cpp index 44c7a294..fde5ff19 100644 --- a/lib/Module/InstructionInfoTable.cpp +++ b/lib/Module/InstructionInfoTable.cpp @@ -119,13 +119,13 @@ public: #endif if (dsub != nullptr) { auto path = dsub->getFilename(); - return std::unique_ptr(new FunctionInfo( + return std::make_unique(FunctionInfo( 0, getInternedString(path), dsub->getLine(), asmLine)); } // Fallback: Mark as unknown - return std::unique_ptr( - new FunctionInfo(0, getInternedString(""), 0, asmLine)); + return std::make_unique( + FunctionInfo(0, getInternedString(""), 0, asmLine)); } std::unique_ptr @@ -150,17 +150,17 @@ public: column = LexicalBlock->getColumn(); } } - return std::unique_ptr(new InstructionInfo( + return std::make_unique(InstructionInfo( 0, getInternedString(full_path), line, column, asmLine)); } if (f != nullptr) // If nothing found, use the surrounding function - return std::unique_ptr( - new InstructionInfo(0, f->file, f->line, 0, asmLine)); + return std::make_unique( + InstructionInfo(0, f->file, f->line, 0, asmLine)); // If nothing found, use the surrounding function - return std::unique_ptr( - new InstructionInfo(0, getInternedString(""), 0, 0, asmLine)); + return std::make_unique( + InstructionInfo(0, getInternedString(""), 0, 0, asmLine)); } }; -- cgit 1.4.1