This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
problems with egcs-1.0.3a / Solaris 2.5.1
- To: egcs-bugs at cygnus dot com
- Subject: problems with egcs-1.0.3a / Solaris 2.5.1
- From: papadopo at shfj dot cea dot fr (Dimitri PAPADOPOULOS-ORFANOS)
- Date: Fri, 19 Jun 1998 15:45:37 +0200
I use egcs-1.0.3a on Solaris 2.5.1. I found the following bugs:
1) Is there a patch for the following bug that appeared in
EGCS 1.0 and GNU C 2.8.0? This code does not compile, because
the templated != operator of STL is used in place of the
'native' != operator for enum's:
#include <set>
foo() {
enum { A, B } i, j;
i != j;
}
2) The native assembler doesn't like the -O3 option. Is this a known issue?
Here is the error I get from my assembler:
g++ -ansi -O3 -fPIC -Wall -c reader.cc -o obj.fast/SunOS/reader.o
/usr/ccs/bin/as: "/tmp/cca002XX.s", line 30307: error: can't compute value of an expression involving an external symbol
The same source compiles fine with -O3 together with -g:
g++ -ansi -g -O3 -fPIC -Wall -c reader.cc -o obj.debug/SunOS/reader.o
Here is line 30307 of reader.s (I don't know Sparc assembly to
understand if it helps :)
.size __copy__t7rb_tree5Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt4pair2ZCt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt3map4Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0ZbZt4less1Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt24__default_alloc_template2b0i0Zt9select1st1Zt4pair2ZCt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt3map4Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0ZbZt4less1Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt24__default_alloc_template2b0i0Zt4less1Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt24__default_alloc_template2b0i0Pt14__rb_tree_node1Zt4pair2ZCt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt3map4Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_a!
lloc_template2b0i0ZbZt4less1Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt24__default_alloc_template2b0i0T1,.LLfe21-__copy__t7rb_tree5Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt4pair2ZCt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt3map4Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0ZbZt4less1Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt24__default_alloc_template2b0i0Zt9select1st1Zt4pair2ZCt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt3map4Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0ZbZt4less1Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt24__default_alloc_template2b0i0Zt4less1Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt24__default_alloc_template2b0i0Pt14__rb_tree_node1Zt4pair2ZCt12b!
asic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0
i0Zt3map4Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0ZbZt4less1Zt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b0i0Zt24__default_alloc_template2b0i0T1
3) Using -O3, I also get a warning in the following source:
map<string, Attribute>
AttributeReader::read(const char* filename) const
throw(parse_error) // WARNING DISAPPEARS IF I REMOVE
// EXCEPTION SPECIFICATIONS
{
// [...] some code here to create "stream" from "filename"
try
{
return read(stream);
}
catch (parse_error& e) // THIS IS LINE 65
{
// parse_error is a subclass of runtime_error
throw parse_error(e.what(), e.line(), filename);
}
}
The warning message itself is a little bit messy. Does anyone understand
what is going on here? Is this a known issue?
g++ -ansi -O3 -fPIC -Wall -c attribute.cc -o obj.fast/SunOS/attribute.o
attribute.cc: In method `class map<basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> >,Attribute,less<basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> > >,__default_alloc_template<false,0> > AttributeReader::read(const char *) const':
attribute.cc:65: warning: `struct cp_eh_info * __exception_info' might be used uninitialized in this function
/home/x/egcs-1.0.3a/include/g++/stl_tree.h: In method `class map<basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> >,Attribute,less<basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> > >,__default_alloc_template<false,0> > AttributeReader::read(class istream &) const':
/home/x/egcs-1.0.3a/include/g++/stl_tree.h:540: warning: `struct cp_eh_info * __exception_info' might be used uninitialized in this function