Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!WSL.DEC.COM!bothner From: bothner@WSL.DEC.COM Newsgroups: gnu.g++.bug Subject: More problems with g++.xtar Message-ID: <8909110246.AA02450@gilroy.pa.dec.com> Date: 11 Sep 89 02:46:08 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 30 I finally persevered in compiling and linking libg++ with my application. However: * In function convert_to_aggr in cplus_cvt.c:1073 cp->harshness is alloca'd an array of 2 shorts. Then compute_conversion_costs (in cplus-class.c) is invoked with arglen=2. However, the latter routine assumes that cp->harshness is (arglen+1) length - just look at the call to bzero. Not really understanding much of the code, I changed cplus_cvt.c:1073 to alloca an array of 3 shorts. That seems to work. * Compiling libg++ still crashes, if optimization is on. I removed -O -fstrength-reduce from the libg++/src/Makefile, and the library compiled to completion. * I needed to call a C++ routine from C. I tried adding a declaration of the form: extern "C" { struct Any foo(etc); }; struct Any foo(etc) { } However, the extern seemed to have no effect - foo still gets a munged name. (I managed to kludge around it.) --Per