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

Reply via email to