Browse Source

Changed the parser for easier transition to a newer Clang.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
cpp_module_crash
Dimitar Dobrev 9 years ago
parent
commit
3d4c7c56f8
  1. 1
      src/CppParser/AST.cpp
  2. 2
      src/CppParser/ELFDumper.h
  3. 2
      src/CppParser/Parser.cpp
  4. 2
      src/CppParser/Parser.h

1
src/CppParser/AST.cpp

@ -9,6 +9,7 @@
#include <algorithm> #include <algorithm>
#include <string> #include <string>
#include <vector> #include <vector>
#include <llvm/ADT/SmallString.h>
#include <llvm/Support/Path.h> #include <llvm/Support/Path.h>
// copy from widenPath ('llvm/lib/Support/Windows/Path.inc') // copy from widenPath ('llvm/lib/Support/Windows/Path.inc')

2
src/CppParser/ELFDumper.h

@ -40,7 +40,7 @@ private:
llvm::StringRef getDynamicString(uint64_t Offset) const; llvm::StringRef getDynamicString(uint64_t Offset) const;
const Elf_Dyn *dynamic_table_begin() const; const Elf_Dyn *dynamic_table_begin() const;
const Elf_Dyn *dynamic_table_end() const; const Elf_Dyn *dynamic_table_end() const;
Elf_Dyn_Range dynamic_table() const { llvm::iterator_range<const Elf_Dyn*> dynamic_table() const {
return llvm::make_range(dynamic_table_begin(), dynamic_table_end()); return llvm::make_range(dynamic_table_begin(), dynamic_table_end());
} }

2
src/CppParser/Parser.cpp

@ -3274,7 +3274,6 @@ ParserResult* Parser::ParseHeader(const std::string& File, ParserResult* res)
std::unique_ptr<clang::CodeGen::CodeGenTypes> CGT( std::unique_ptr<clang::CodeGen::CodeGenTypes> CGT(
new clang::CodeGen::CodeGenTypes(*CGM.get())); new clang::CodeGen::CodeGenTypes(*CGM.get()));
CodeGenInfo = (clang::TargetCodeGenInfo*) &CGM->getTargetCodeGenInfo();
CodeGenTypes = CGT.get(); CodeGenTypes = CGT.get();
WalkAST(); WalkAST();
@ -3541,7 +3540,6 @@ ParserTargetInfo* Parser::GetTargetInfo()
std::unique_ptr<clang::CodeGen::CodeGenTypes> CGT( std::unique_ptr<clang::CodeGen::CodeGenTypes> CGT(
new clang::CodeGen::CodeGenTypes(*CGM.get())); new clang::CodeGen::CodeGenTypes(*CGM.get()));
CodeGenInfo = (clang::TargetCodeGenInfo*) &CGM->getTargetCodeGenInfo();
CodeGenTypes = CGT.get(); CodeGenTypes = CGT.get();
auto parserTargetInfo = new ParserTargetInfo(); auto parserTargetInfo = new ParserTargetInfo();

2
src/CppParser/Parser.h

@ -24,7 +24,6 @@
typedef std::string String; typedef std::string String;
namespace clang { namespace clang {
class TargetCodeGenInfo;
namespace CodeGen { namespace CodeGen {
class CodeGenTypes; class CodeGenTypes;
} }
@ -134,7 +133,6 @@ protected:
std::unique_ptr<clang::CompilerInstance> C; std::unique_ptr<clang::CompilerInstance> C;
clang::ASTContext* AST; clang::ASTContext* AST;
clang::TargetCXXABI::Kind TargetABI; clang::TargetCXXABI::Kind TargetABI;
clang::TargetCodeGenInfo* CodeGenInfo;
clang::CodeGen::CodeGenTypes* CodeGenTypes; clang::CodeGen::CodeGenTypes* CodeGenTypes;
private: private:

Loading…
Cancel
Save