Hi,
I am interested about using your viewer for visualizing my boost
statecharts but from some reason I can not get it succesfully compiled. I'm
using Ubuntu 13.10 as OS and I have installed llvm + clang (version 3.2-20).
While compiling visualizer.cpp I get following errors:
make[1]: Entering directory
`/home/karjsim/boost-statechart-viewer-8c02883/src'
g++ -g -fno-rtti -shared -Wall -lclangParse -lclangFrontend
-lclangSerialization -lclangDriver -lclangCodeGen -lclangSema
-lclangAnalysis -lclangAST -lclangLex -lclangBasic -lclangEdit
-I/usr/local/include -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g -fvisibility-inlines-hidden
-fno-exceptions -fno-rtti -fPIC -Woverloaded-virtual -Wcast-qual
-L/usr/local/lib -lpthread -ldl -lm -lLLVMJIT -lLLVMRuntimeDyld
-lLLVMExecutionEngine -lLLVMCodeGen -lLLVMObjCARCOpts -lLLVMScalarOpts
-lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis
-lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport -o
visualizer.so visualizer.cpp
visualizer.cpp: In member function ‘void
Visitor::checkAllReactMethods(const clang::CXXRecordDecl*)’:
visualizer.cpp:339:16: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘first’
ReactRes.first != ReactRes.second; ++ReactRes.first, ++i) {
^
visualizer.cpp:339:34: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘second’
ReactRes.first != ReactRes.second; ++ReactRes.first, ++i) {
^
visualizer.cpp:339:53: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘first’
ReactRes.first != ReactRes.second; ++ReactRes.first, ++i) {
^
visualizer.cpp:341:60: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘first’
CXXMethodDecl *React = dyn_cast<CXXMethodDecl>(*ReactRes.first);
^
visualizer.cpp: In member function ‘bool
Visitor::HandleCustomReaction(const clang::CXXRecordDecl*, const
clang::Type*)’:
visualizer.cpp:354:16: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘first’
ReactRes.first != ReactRes.second; ++ReactRes.first) {
^
visualizer.cpp:354:34: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘second’
ReactRes.first != ReactRes.second; ++ReactRes.first) {
^
visualizer.cpp:354:53: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘first’
ReactRes.first != ReactRes.second; ++ReactRes.first) {
^
visualizer.cpp:355:67: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘first’
if (CXXMethodDecl *React = dyn_cast<CXXMethodDecl>(*ReactRes.first)) {
^
visualizer.cpp:371:19: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘first’
Diag((*ReactRes.first)->getSourceRange().getBegin(), diag_warning)
^
visualizer.cpp:372:21: error: ‘clang::DeclContext::lookup_const_result’ has
no member named ‘first’
<< (*ReactRes.first)->getDeclKindName() << "is not supported as
react method";
^
visualizer.cpp: In member function ‘void
Visitor::handleSimpleState(clang::CXXRecordDecl*, const
clang::CXXBaseSpecifier*)’:
visualizer.cpp:516:17: error: ‘clang::DeclContext::lookup_result’ has no
member named ‘first’
Reactions.first != Reactions.second; ++Reactions.first,
typedef_num++)
^
visualizer.cpp:516:36: error: ‘clang::DeclContext::lookup_result’ has no
member named ‘second’
Reactions.first != Reactions.second; ++Reactions.first,
typedef_num++)
^
visualizer.cpp:516:56: error: ‘clang::DeclContext::lookup_result’ has no
member named ‘first’
Reactions.first != Reactions.second; ++Reactions.first,
typedef_num++)
^
visualizer.cpp:517:32: error: ‘clang::DeclContext::lookup_result’ has no
member named ‘first’
HandleReaction(*Reactions.first, RecordDecl);
^
In file included from /usr/local/include/llvm/ADT/IntrusiveRefCntPtr.h:24:0,
from /usr/local/include/llvm/Support/FileSystem.h:30,
from /usr/local/include/llvm/Support/raw_ostream.h:20,
from visualizer.cpp:28:
/usr/local/include/llvm/Support/Casting.h: In instantiation of ‘static bool
llvm::isa_impl<To, From, Enabler>::doit(const From&) [with To =
clang::ElaboratedTypeLoc; From = clang::TypeLoc; Enabler = void]’:
/usr/local/include/llvm/Support/Casting.h:98:41: required from ‘static
bool llvm::isa_impl_cl<To, const From*>::doit(const From*) [with To =
clang::ElaboratedTypeLoc; From = clang::TypeLoc]’
/usr/local/include/llvm/Support/Casting.h:124:44: required from ‘static
bool llvm::isa_impl_wrap<To, FromTy, FromTy>::doit(const FromTy&) [with To
= clang::ElaboratedTypeLoc; FromTy = const clang::TypeLoc*]’
/usr/local/include/llvm/Support/Casting.h:116:77: required from ‘static
bool llvm::isa_impl_wrap<To, From, SimpleFrom>::doit(const From&) [with To
= clang::ElaboratedTypeLoc; From = const clang::TypeLoc* const; SimpleFrom
= const clang::TypeLoc*]’
/usr/local/include/llvm/Support/Casting.h:136:78: required from ‘bool
llvm::isa(const Y&) [with X = clang::ElaboratedTypeLoc; Y = const
clang::TypeLoc*]’
/usr/local/include/llvm/Support/Casting.h:277:20: required from ‘typename
llvm::cast_retty<X, Y*>::ret_type llvm::dyn_cast(Y*) [with X =
clang::ElaboratedTypeLoc; Y = const clang::TypeLoc; typename
llvm::cast_retty<X, Y*>::ret_type = const clang::ElaboratedTypeLoc*]’
visualizer.cpp:438:66: required from here
/usr/local/include/llvm/Support/Casting.h:55:28: error: ‘classof’ is not a
member of ‘clang::ElaboratedTypeLoc’
return To::classof(&Val);
^
/usr/local/include/llvm/Support/Casting.h: In instantiation of ‘static bool
llvm::isa_impl<To, From, Enabler>::doit(const From&) [with To =
clang::TemplateSpecializationTypeLoc; From = clang::TypeLoc; Enabler =
void]’:
/usr/local/include/llvm/Support/Casting.h:98:41: required from ‘static
bool llvm::isa_impl_cl<To, const From*>::doit(const From*) [with To =
clang::TemplateSpecializationTypeLoc; From = clang::TypeLoc]’
/usr/local/include/llvm/Support/Casting.h:124:44: required from ‘static
bool llvm::isa_impl_wrap<To, FromTy, FromTy>::doit(const FromTy&) [with To
= clang::TemplateSpecializationTypeLoc; FromTy = const clang::TypeLoc*]’
/usr/local/include/llvm/Support/Casting.h:116:77: required from ‘static
bool llvm::isa_impl_wrap<To, From, SimpleFrom>::doit(const From&) [with To
= clang::TemplateSpecializationTypeLoc; From = const clang::TypeLoc* const;
SimpleFrom = const clang::TypeLoc*]’
/usr/local/include/llvm/Support/Casting.h:136:78: required from ‘bool
llvm::isa(const Y&) [with X = clang::TemplateSpecializationTypeLoc; Y =
const clang::TypeLoc*]’
/usr/local/include/llvm/Support/Casting.h:277:20: required from ‘typename
llvm::cast_retty<X, Y*>::ret_type llvm::dyn_cast(Y*) [with X =
clang::TemplateSpecializationTypeLoc; Y = const clang::TypeLoc; typename
llvm::cast_retty<X, Y*>::ret_type = const
clang::TemplateSpecializationTypeLoc*]’
visualizer.cpp:440:96: required from here
/usr/local/include/llvm/Support/Casting.h:55:28: error: ‘classof’ is not a
member of ‘clang::TemplateSpecializationTypeLoc’
make[1]: *** [visualizer.so] Error 1
Could you please help me to get viewer compiled ?
-Simo