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