• Yonghong Song's avatar
    fix a compilation error with latest llvm/clang trunk · c0d1694e
    Yonghong Song authored
    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: default avatarYonghong Song <yhs@fb.com>
    c0d1694e
tp_frontend_action.cc 6.7 KB