fix a compilation error with latest llvm/clang trunk
bcc build with latest llvm/clang trunk failed with the
below error:
......
[ 35%] Built target api-static
/home/yhs/work/bcc/src/cc/frontends/clang/tp_frontend_action.cc: In member function ‘bool ebpf::TracepointTypeVisitor::Visit
FunctionDecl(clang::FunctionDecl*)’:
/home/yhs/work/bcc/src/cc/frontends/clang/tp_frontend_action.cc:163:60: error: no matching function for call to ‘clang::Qual
Type::getAsString(clang::SplitQualType)’
auto type_name = QualType::getAsString(type.split());
^
......
The error is caused by the below clang commit:
commit fcc28fd8cc8139cf1e4763459447880768579d8e
Author: Aaron Ballman <aaron@aaronballman.com>
Date: Thu Dec 21 21:42:42 2017 +0000
Re-commit r321223, which adds a printing policy to the ASTDumper.
......
- std::string getAsString() const {
- return getAsString(split());
+ static std::string getAsString(SplitQualType split,
+ const PrintingPolicy &Policy) {
+ return getAsString(split.Ty, split.Quals, Policy);
}
+ static std::string getAsString(const Type *ty, Qualifiers qs,
+ const PrintingPolicy &Policy);
- static std::string getAsString(SplitQualType split) {
- return getAsString(split.Ty, split.Quals);
- }
-
- static std::string getAsString(const Type *ty, Qualifiers qs);
-
+ std::string getAsString() const;
std::string getAsString(const PrintingPolicy &Policy) const;
......
The signature of static function getAsString(), which is used
in src/cc/frontends/clang/tp_frontend_action.cc, got changed,
and this caused the compilation error.
The patch chooses a different way to get type_name which works
for llvm 4.0 to 6.0 (tested).
Signed-off-by: Yonghong Song <yhs@fb.com>
Showing
Please register or sign in to comment