When compiling the following example using language c++ (compiling in language c works fine) and optimization level -O1 or higher (-O0 works fine) GCC 4.4.1 for MIPS crashes with an internal compiler error - segmentation fault in line 5.
Please note that the register variable is declared "double", when using "float" type the error does not occur. gcc -O1 -x c++ test_neg_float_register.c ---------test_neg_float_register.c---------- register double g_param_f64_1 __asm__("$f20"); void negate_float_register (void) { g_param_f64_1 = -(g_param_f64_1); } -------------------------------------------- See attachment for example file. The error is reproducible with GCC version 4.3.2 and 4.4.1 and optimization level higher -O0 (that is -O1, -O2, -O3). -- Summary: GCC Segmentation fault - negating global register variables Product: gcc Version: 4.4.1 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: steffenschmidt dot ext at siemens dot com GCC host triplet: MinGW GCC target triplet: mips*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45074