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.



_______________________________________________
Etoile-dev mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-dev

Reply via email to