fdpo@FALINE.BELLCORE.COM (Rick D. Porter) (12/07/89)
I am a neophyte C++ user, but I believe that the following program should not core dump as it does: I am running version 1.36.1 on a Sun4 running SunOS 4.0.3. I ran g++ with the -g option only. The config files were sparc.md and tm-sparc.h. The following program illustrates the problem. It core dumps in Field::Field( RegInfo ). The problem occurs when get_val(), an inline member function, is called and its return value is not used. The problem does NOT occur if the return value is used or if get_val() is not inline. It also does NOT occur if I compile it on a Sun3 with SunOS 4.0. Rick Porter Bellcore (201) 829-4490 ------------------------------------------------------------ struct RegInfo { char val; char fake; }; class Field { RegInfo* rip; char get_val(); public: Field(RegInfo& ) ; Field() {}; ~Field() {}; }; inline char Field::get_val() { return rip->fake; } Field::Field( RegInfo& ri ) { rip = &ri; get_val(); // Core dumps here ri.val = get_val(); // This executes OK } main() { RegInfo ri; Field f( ri ); }