# Patch adapted from Debian bug #270282 -- plasmaroo. diff -ur gnucap-0.34/ibis/base.h gnucap-0.34-debian270282/ibis/base.h --- gnucap-0.34-debian270282/ibis/base.h 2004-10-04 20:40:33.497472160 +0100 +++ gnucap-0.34/ibis/base.h 2004-10-04 20:40:45.319674912 +0100 @@ -40,7 +40,7 @@ class Base { private: - explicit Base(const Base&) {unreachable();} +// explicit Base(const Base&) {unreachable();} // This private base copy constructor inhibits generation of // copy constructors for its derived classes. protected: diff -ur gnucap-0.34/ibis/comp-in.cc gnucap-0.34-debian270282/ibis/comp-in.cc --- gnucap-0.34-debian270282/ibis/comp-in.cc 2004-10-04 20:40:33.502471400 +0100 +++ gnucap-0.34/ibis/comp-in.cc 2004-10-04 20:40:45.332672936 +0100 @@ -24,8 +24,8 @@ /*--------------------------------------------------------------------------*/ void Component::Pin_Die::parse(CS& file) { - set(file, "Pin", &_pd, pdPIN) - || set(file, "Die", &_pd, pdDIE) + set(file, "Pin", (int*)&_pd, (int)pdPIN) + || set(file, "Die", (int*)&_pd, (int)pdDIE) || file.warn(0, "need Pin or Die"); } /*--------------------------------------------------------------------------*/ diff -ur gnucap-0.34/ibis/file-in.cc gnucap-0.34-debian270282/ibis/file-in.cc --- gnucap-0.34-debian270282/ibis/file-in.cc 2004-10-04 20:40:33.497472160 +0100 +++ gnucap-0.34/ibis/file-in.cc 2004-10-04 20:41:41.837082960 +0100 @@ -25,9 +25,9 @@ /*--------------------------------------------------------------------------*/ void Redistribution::parse(CS& file) { - set(file, "Yes", &_r, dYES) - || set(file, "No", &_r, dNO) - || set(file, "Specific",&_r, dSPECIFIC) + set(file, "Yes", (int*) &_r, (int)dYES) + || set(file, "No", (int*) &_r, (int)dNO) + || set(file, "Specific",(int*) &_r, (int)dSPECIFIC) || file.warn(0, "need Yes, No, or Specific"); } /*--------------------------------------------------------------------------*/ Only in gnucap-0.34/ibis: file-in.cc.orig Only in gnucap-0.34/ibis: file-in.cc.rej diff -ur gnucap-0.34/ibis/model-in.cc gnucap-0.34-debian270282/ibis/model-in.cc --- gnucap-0.34-debian270282/ibis/model-in.cc 2004-10-04 20:40:33.495472464 +0100 +++ gnucap-0.34/ibis/model-in.cc 2004-10-04 20:44:11.303360632 +0100 @@ -145,23 +145,23 @@ /*--------------------------------------------------------------------------*/ void Model_Base::Type::parse(CS& file) { - set(file, "Terminator", &_type, mtTERMINATOR) - || set(file, "Input_ECL", &_type, mtINPUT_ECL) - || set(file, "Input", &_type, mtINPUT) - || set(file, "I/O_open_sink", &_type, mtIO_OPEN_SINK) - || set(file, "I/O_open_drain", &_type, mtIO_OPEN_DRAIN) - || set(file, "I/O_open_source",&_type, mtIO_OPEN_SOURCE) - || set(file, "I/O_ECL", &_type, mtIO_ECL) - || set(file, "I/O", &_type, mtIO) - || set(file, "3-state_ECL", &_type, mt3STATE_ECL) - || set(file, "3-state", &_type, mt3STATE) - || set(file, "Output_ECL", &_type, mtOUTPUT_ECL) - || set(file, "Output", &_type, mtOUTPUT) - || set(file, "Open_sink", &_type, mtOPEN_SINK) - || set(file, "Open_drain", &_type, mtOPEN_DRAIN) - || set(file, "Open_source", &_type, mtOPEN_SOURCE) - || set(file, "Series_switch", &_type, mtSERIES_SWITCH) - || set(file, "Series", &_type, mtSERIES) + set(file, "Terminator", (int*) &_type, (int) mtTERMINATOR) + || set(file, "Input_ECL", (int*) &_type, (int) mtINPUT_ECL) + || set(file, "Input", (int*) &_type, (int) mtINPUT) + || set(file, "I/O_open_sink", (int*) &_type, (int) mtIO_OPEN_SINK) + || set(file, "I/O_open_drain", (int*) &_type, (int) mtIO_OPEN_DRAIN) + || set(file, "I/O_open_source",(int*) &_type, (int) mtIO_OPEN_SOURCE) + || set(file, "I/O_ECL", (int*) &_type, (int) mtIO_ECL) + || set(file, "I/O", (int*) &_type, (int) mtIO) + || set(file, "3-state_ECL", (int*) &_type, (int) mt3STATE_ECL) + || set(file, "3-state", (int*) &_type, (int) mt3STATE) + || set(file, "Output_ECL", (int*) &_type, (int) mtOUTPUT_ECL) + || set(file, "Output", (int*) &_type, (int) mtOUTPUT) + || set(file, "Open_sink", (int*) &_type, (int) mtOPEN_SINK) + || set(file, "Open_drain", (int*) &_type, (int) mtOPEN_DRAIN) + || set(file, "Open_source", (int*) &_type, (int) mtOPEN_SOURCE) + || set(file, "Series_switch", (int*) &_type, (int) mtSERIES_SWITCH) + || set(file, "Series", (int*) &_type, (int) mtSERIES) || file.warn(0, "illegal model type"); } /*--------------------------------------------------------------------------*/ @@ -235,8 +235,8 @@ /*--------------------------------------------------------------------------*/ void IO_Base::Polarity::parse(CS& file) { - set(file, "Non-Inverting", &_p, pNON_INVERTING) - || set(file, "Inverting", &_p, pINVERTING) + set(file, "Non-Inverting", (int*) &_p, (int) pNON_INVERTING) + || set(file, "Inverting", (int*) &_p, (int) pINVERTING) || file.warn(0, "need Inverting or Non-Inverting"); } /*--------------------------------------------------------------------------*/ Only in gnucap-0.34/ibis: model-in.cc.orig Only in gnucap-0.34/ibis: model-in.cc.rej diff -ur gnucap-0.34/modelgen/mg_.h gnucap-0.34-debian270282/modelgen/mg_.h --- gnucap-0.34-debian270282/modelgen/mg_.h 2004-10-04 20:40:33.441480672 +0100 +++ gnucap-0.34/modelgen/mg_.h 2004-10-04 20:44:38.197272136 +0100 @@ -118,7 +118,7 @@ } T* p = new T(file); {if (!file.stuck(&here)) { - _list.push_back(p); + this->_list.push_back(p); }else { delete p; file.warn(0, "not valid here"); @@ -137,7 +137,7 @@ int here = file.cursor(); T* m = new T(file); {if (!file.stuck(&here)) { - _list.push_back(m); + this->_list.push_back(m); }else{ delete m; file.warn(0, "what's this??"); Only in gnucap-0.34/modelgen: mg_.h.orig Only in gnucap-0.34/modelgen: mg_.h.rej diff -ur gnucap-0.34/src/bm.cc gnucap-0.34-debian270282/src/bm.cc --- gnucap-0.34-debian270282/src/bm.cc 2004-10-04 20:40:33.412485080 +0100 +++ gnucap-0.34/src/bm.cc 2004-10-04 20:40:45.340671720 +0100 @@ -207,7 +207,8 @@ /*--------------------------------------------------------------------------*/ void EVAL_BM_ACTION_BASE::tr_finish_tdv(ELEMENT* d, double val)const { - d->_y0 = FPOLY1(CPOLY1(ioffset(d->_y0.x), 0., val)); + CPOLY1 cp1(ioffset(d->_y0.x), 0., val); + d->_y0 = FPOLY1(cp1); tr_final_adjust(&(d->_y0), false); } /*--------------------------------------------------------------------------*/ diff -ur gnucap-0.34/src/d_admit.cc gnucap-0.34-debian270282/src/d_admit.cc --- gnucap-0.34-debian270282/src/d_admit.cc 2004-10-04 20:40:33.412485080 +0100 +++ gnucap-0.34/src/d_admit.cc 2004-10-04 20:40:45.342671416 +0100 @@ -56,7 +56,8 @@ assert(_y0.f0 != LINEAR); store_values(); q_load(); - _m0 = CPOLY1(_y0); + CPOLY1 cp1(_y0); + _m0 = cp1; }else{ assert(_y0.f0 == LINEAR); assert(_y0.f1 == value()); @@ -171,7 +172,8 @@ bool DEV_CPOLY_G::do_tr() { assert(_values); - _m0 = CPOLY1(0., _values[0], _values[1]); + CPOLY1 cp1(0., _values[0], _values[1]); + _m0 = cp1; return do_tr_con_chk_and_q(); } /*--------------------------------------------------------------------------*/ @@ -193,7 +195,8 @@ }} }} trace2("", _values[0], c0); - _m0 = CPOLY1(0., c0, _values[1]); + CPOLY1 cp1(0., c0, _values[1]); + _m0 = cp1; return do_tr_con_chk_and_q(); } diff -ur gnucap-0.34/src/d_cap.cc gnucap-0.34-debian270282/src/d_cap.cc --- gnucap-0.34-debian270282/src/d_cap.cc 2004-10-04 20:40:33.397487360 +0100 +++ gnucap-0.34/src/d_cap.cc 2004-10-04 20:40:45.342671416 +0100 @@ -49,7 +49,8 @@ _i0.f0 = differentiate(); _i0.f1 = tr_c_to_g(_q[0].f1, _i0.f1); - _m0 = CPOLY1(_i0); + CPOLY1 cp1(_i0); + _m0 = cp1; return converged(); } /*--------------------------------------------------------------------------*/ @@ -172,7 +173,8 @@ }} }} - _m0 = CPOLY1(0., _vi0[0], _vi0[1]); + CPOLY1 cp1(0., _vi0[0], _vi0[1]); + _m0 = cp1; return do_tr_con_chk_and_q(); } /*--------------------------------------------------------------------------*/ diff -ur gnucap-0.34/src/d_vcvs.cc gnucap-0.34-debian270282/src/d_vcvs.cc --- gnucap-0.34-debian270282/src/d_vcvs.cc 2004-10-04 20:40:33.392488120 +0100 +++ gnucap-0.34/src/d_vcvs.cc 2004-10-04 20:40:45.342671416 +0100 @@ -58,7 +58,8 @@ assert(_y0.f0 != LINEAR); store_values(); q_load(); - _m0 = CPOLY1(_y0); + CPOLY1 cp1(_y0); + _m0 =cp1; _m0 *= -_loss0; }else{ assert(conchk(_loss0, 1./OPT::shortckt)); diff -ur gnucap-0.34/src/e_storag.cc gnucap-0.34-debian270282/src/e_storag.cc --- gnucap-0.34-debian270282/src/e_storag.cc 2004-10-04 20:40:33.401486752 +0100 +++ gnucap-0.34/src/e_storag.cc 2004-10-04 20:40:45.343671264 +0100 @@ -78,7 +78,8 @@ _dt = NOT_VALID; _i0 = _q[0] = _q[1] = _q[2] = _q[3] = FPOLY1(0., 0., 0.); _it1_f0 = 0.; - _m1 = _m0 = CPOLY1(0., 0., 0.); + CPOLY1 cp1(0., 0., 0.); + _m1 = _m0 = cp1; assert(_loss0 == 0.); assert(_loss1 == 0.); if (!using_tr_eval()){