Hello I just tried to compile the boost statechart library on archlinux 64-bit, with clang 3.4, gcc 4.8.2, from current git (8c0288337a5e9540a58f7859789f9cb3f94a259c) However, I get the following errors: ❯ make boost-statechart-viewer/git/master make -C src make[1]: Entering directory '/home/jan/tmp/boost-statechart-viewer/src' g++ -g -fno-rtti -shared -Wall -lclangParse -lclangFrontend -lclangSerialization -lclangDriver -lclangCodeGen -lclangSema -lclangAnalysis -lclangAST -lclangLex -lclangBasic -lclangEdit -I/usr/include -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O3 -fomit-frame-pointer -fvisibility-inlines-hidden -fno-exceptions -fPIC -Woverloaded-virtual -Wcast-qual -L/usr/lib -lz -lpthread -lffi -lcurses -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/include/llvm/ADT/IntrusiveRefCntPtr.h:24:0, from /usr/include/llvm/Support/FileSystem.h:30, from /usr/include/llvm/Support/raw_ostream.h:20, from visualizer.cpp:28: /usr/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/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/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/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/include/llvm/Support/Casting.h:136:78: required from ‘bool llvm::isa(const Y&) [with X = clang::ElaboratedTypeLoc; Y = const clang::TypeLoc*]’ /usr/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/include/llvm/Support/Casting.h:55:28: error: ‘classof’ is not a member of ‘clang::ElaboratedTypeLoc’ return To::classof(&Val); ^ /usr/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/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/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/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/include/llvm/Support/Casting.h:136:78: required from ‘bool llvm::isa(const Y&) [with X = clang::TemplateSpecializationTypeLoc; Y = const clang::TypeLoc*]’ /usr/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/include/llvm/Support/Casting.h:55:28: error: ‘classof’ is not a member of ‘clang::TemplateSpecializationTypeLoc’ Makefile:22: recipe for target 'visualizer.so' failed make[1]: *** [visualizer.so] Error 1 make[1]: Leaving directory '/home/jan/tmp/boost-statechart-viewer/src' Makefile:8: recipe for target 'src' failed make: *** [src] Error 2 Any idea what the problem could be? Kind regards Jan Rüegg -- Jan RÜEGG Software Developer Dacuda AG - Scanning Redefined Badenerstrasse 141 8004 Zurich Switzerland Phone +41 44 295 10 40 Fax +41 44 295 10 49 www.dacuda.com
On Tue, Feb 18 2014, Jan Rueegg wrote:
Hello
I just tried to compile the boost statechart library on archlinux 64-bit, with clang 3.4, gcc 4.8.2, from current git (8c0288337a5e9540a58f7859789f9cb3f94a259c)
Hi, we've not tried boost-statechart-viewer with clang 3.4. It probably needs to be updated to this clang version. Unfortunately, I have no time to work on this in near future. I'll happily accept patches, though. -Michal
There you go! Seems to work so far. However, I would be glad if someone could review it, since I don't really know a lot of clang/llvm ;) - Jan On Tue, Feb 18, 2014 at 7:25 PM, Michal Sojka <sojkam1@fel.cvut.cz> wrote:
On Tue, Feb 18 2014, Jan Rueegg wrote:
Hello
I just tried to compile the boost statechart library on archlinux 64-bit, with clang 3.4, gcc 4.8.2, from current git (8c0288337a5e9540a58f7859789f9cb3f94a259c)
Hi,
we've not tried boost-statechart-viewer with clang 3.4. It probably needs to be updated to this clang version. Unfortunately, I have no time to work on this in near future. I'll happily accept patches, though.
-Michal
-- Jan RÜEGG Software Developer Dacuda AG - Scanning Redefined Badenerstrasse 141 8004 Zurich Switzerland Phone +41 44 295 10 40 Fax +41 44 295 10 49 www.dacuda.com
On Wednesday, February 19, 2014 09:32:49 AM Jan Rueegg wrote: There you go! Seems to work so far. However, I would be glad if someone could review it, since I don't really know a lot of clang/llvm ;) - Jan Thanks! That patch worked for me on Fedora 19, with clang 3.3-4 and llvm 3.3-4. Patrick
On Wed, Feb 19 2014, Jan Rueegg wrote:
There you go! Seems to work so far.
However, I would be glad if someone could review it, since I don't really know a lot of clang/llvm ;)
Thanks Jan. I pushed your changes to the repository. Sorry that it took me so long. With your changes the code looks more readable than before. All our examples compile without problems. I tested it with clang 3.3 on Debian. Cheers, -Michal
participants (3)
-
Jan Rueegg
-
Michal Sojka
-
Patrick Noffke