From: "Jochen Immendörfer" Date: 2004-07-14T02:54:22+09:00 Subject: Re: qtruby compilation error Ok, I did one more try. This time on my notebook -- same distribution like before same gcc version (Arch Linux, gcc 3.4.1). Cast to void* removed from line 1145. Here it worked. Without segmentation fault. Nice. But I still don't know where to submit a bug report ;) regards, jochen Am Dienstag 13 Juli 2004 19:32 schrieb Jochen Immend�rfer: > Thank you two for answering. > > I already had the intention of submitting a bug report, but -- I just > couldn't find such a possibility at rubyforge. Am I just blind? If you know > where to submit a bug report, please tell me and I'll do. > > Btw. I removed the cast to void* from line 1145 and it did actually compile > after then.. > > But trying > > require 'Qt' > > in irb produces a segmentation fault :-( > > regards, > jochen > > Am Dienstag 13 Juli 2004 19:14 schrieb Paul Brannan: > > On Wed, Jul 14, 2004 at 01:40:23AM +0900, Jochen Immend�rfer wrote: > > > Hi, > > > > > > I am trying to compile qtruby. Unfortunally it failed with the > > > following error message: > > > > > > Qt.cpp: In function `VALUE initialize_qt(int, VALUE*, VALUE)': > > > Qt.cpp:1145: error: ISO C++ forbids cast to non-reference type used as > > > lvalue make[5]: *** [Qt.lo] Fehler 1 > > > > I'm not a qtruby developer and I don't have Qt 3.2, so I can't check any > > of this, but it looks like a bug. > > > > Lines 1144-1145 read: > > > > smokeruby_object * p = 0; > > Data_Get_Struct(temp_obj, smokeruby_object, (void *) p); > > > > And this expands to: > > > > smokeruby_object * p = 0; > > Check_Type(temp_obj, T_DATA); (void *) p = > > (smokeruby_object*)DATA_PTR(temp_obj); > > > > Which is not valid C++ (older versions of g++ accept it, but neither > > como nor g++ 3.4 does). > > > > There's really no good reason I can think of for the cast to void*, > > anyway. You should submit a bug report. > > > > Paul