On 11 Jul 2008, at 15:04, Quentin Mathé wrote: > Le 11 juil. 08 à 13:27, David Chisnall a écrit : > >> On 11 Jul 2008, at 12:22, Quentin Mathé wrote: >> >>> However it now fails with the following error: >>> Compiling file CGObjCGNU.cpp ... >>> CGObjCGNU.cpp: In member function ‘virtual >>> llvm >>> ::Value*<unnamed>::CGObjCGNU::GenerateMessageSend(llvm::IRBuilder&, >>> const llvm::Type*, llvm::Value*, llvm::Value*, llvm::Value*, >>> llvm::Value**, unsigned int)’: >>> CGObjCGNU.cpp:382: error: ‘const class llvm::Type’ has no member >>> named >>> ‘isSingleValueType’ >>> CGObjCGNU.cpp:408: error: ‘const class llvm::Type’ has no member >>> named >>> ‘isSingleValueType’ >>> CGObjCGNU.cpp: In member function ‘virtual >>> llvm::Function*<unnamed>::CGObjCGNU::MethodPreamble(const >>> std::string&, const std::string&, const std::string&, const >>> llvm::Type*, const llvm::Type*, const llvm::Type**, unsigned int, >>> bool, bool)’: >>> CGObjCGNU.cpp:902: error: ‘const class llvm::Type’ has no member >>> named >>> ‘isSingleValueType’ >>> make[1]: *** [obj/CGObjCGNU.o] Error 1 >>> make: *** [st.all.tool.variables] Error 2 >>> >>> I have downloaded and installed LLVM 2.3 source code release by >>> typing ./configure && make && sudo make install. Any ideas? >> >> In that case, I was wrong about it working with LLVM 2.3. Just after >> 2.3, a lot of LLVM was modified to support return values being >> aggregate types. This changed a few of the methods on the llvm::Type >> class, including the ones that are used here. This means you will >> need a recent LLVM trunk checkout, not a release. >> >> On the plus side, it was only 4 months between LLVM 2.2 and 2.3 being >> released, and it should work with 2.4 :-) > > ok. > > Everything compiles fine with a fresh checkout of LLVM repository > (r53434) :-) > Now I get a segfault after the parsing and before anything seems to be > logged by the Smalltalk code. Here is the stack trace: > > #0 0x08794683 in llvm::Type::isFirstClassType (this=0x0) > at /home/qmathe/reps/llvm/include/llvm/Type.h:221 > #1 0x08ec6fce in FunctionType (this=0x927f858, Result=0x91c3220, > [EMAIL PROTECTED], > IsVarArgs=false) at Type.cpp:481 > #2 0x08ec80d9 in llvm::FunctionType::get (ReturnType=0x91c3220, > [EMAIL PROTECTED], > isVarArg=false) at Type.cpp:1129 > #3 0x08608fd4 in (anonymous namespace)::CGObjCGNU::MethodPreamble > (this=0x9254de8, > [EMAIL PROTECTED], [EMAIL PROTECTED], > [EMAIL PROTECTED], > ReturnTy=0x91c3220, SelfTy=0x92822a0, ArgTy=0xbfb6dec0, ArgC=1, > isClassMethod=false, > isVarArg=false) at CGObjCGNU.cpp:912 > #4 0x08619118 in CodeGen::BeginMethod (this=0x927dab0, > MethodName=0x926bc20 "addObject:", MethodTypes=0xb7b803e2 > "[EMAIL PROTECTED]:[EMAIL PROTECTED]", locals=4) > at LLVMCodeGen.cpp:323 > #5 0x08615312 in BeginMethod (B=0x927dab0, methodname=0x926bc20 > "addObject:", > methodTypes=0xb7b803e2 "[EMAIL PROTECTED]:[EMAIL PROTECTED]", locals=4) > at LLVMCodeGen.cpp: > 718 > #6 0x086017a5 in -[LLVMCodeGen beginMethod:withTypes:locals:] > (self=0x92a9538, > _cmd=0x9185990, aName=0x926bc20 "addObject:", types=0xb7b803e2 > "[EMAIL PROTECTED]:[EMAIL PROTECTED]", locals=4) > at CodeGen.m:40 > #7 0x08603903 in -[SmalltalkMethod compileWith:] (self=0x923bd70, > _cmd=0x9189d30, > aGenerator=0x92a9538) at Method.m:59 > #8 0x08605963 in -[Subclass compileWith:] (self=0x923c690, > _cmd=0x9186788, > aGenerator=0x92a9538) at Subclass.m:67 > #9 0x086040c6 in -[CompilationUnit compileWith:] (self=0x9229c58, > _cmd=0x918beb0, > aGenerator=0x92a9538) at Module.m:48 > #10 0x08606a8b in main () at main.m:51 > > Quentin.
Are you running the latest svn? This looks like a bug I fixed yesterday. David _______________________________________________ Etoile-dev mailing list Etoile-dev@gna.org https://mail.gna.org/listinfo/etoile-dev