
Dear Sir,
I have downloaded Giac 0.4.0 from
ftp://ftp-fourier.ujf-grenoble.fr/xcas/giac_unstable.tgz
and tried to compile it with GCC 3.4.0. The compilation aborts very soon as follows:
... c++ -DHAVE_CONFIG_H -I. -I. -I.. -I. -I.. -g -O2 -c gausspol.cc -fPIC -DPIC -o .libs/gausspol.lo In file included from poly.h:26, from sym2poly.h:23, from sym2poly.cc:32: monomial.h: In function `giac::monomial<T> giac::Untrunc1(const T&, int)': monomial.h:151: error: insufficient contextual information to determine type monomial.h:151: error: base operand of `->' is not a pointer monomial.h:302: confused by earlier errors, bailing out In file included from poly.h:26, from gausspol.h:22, from gausspol.cc:28: monomial.h: In function `giac::monomial<T> giac::Untrunc1(const T&, int)': monomial.h:151: error: insufficient contextual information to determine type monomial.h:151: error: base operand of `->' is not a pointer monomial.h:302: confused by earlier errors, bailing out make[2]: *** [sym2poly.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [gausspol.lo] Error 1 make[2]: Leaving directory `/usr/local/distrib/giac-0.4.0/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/distrib/giac-0.4.0' make: *** [all-recursive-am] Error 2
I am unsure about whether this is an indication that Giac 0.4.0 uses some non-standard C++ features that are now rejected by g++ or if we are presented with a bug in g++. What do you think? All the best, and thanks in advance for your time.
Roberto Bagnara

Roberto Bagnara wrote:
Dear Sir,
I have downloaded Giac 0.4.0 from
ftp://ftp-fourier.ujf-grenoble.fr/xcas/giac_unstable.tgz
and tried to compile it with GCC 3.4.0. The compilation aborts very soon as follows:
... c++ -DHAVE_CONFIG_H -I. -I. -I.. -I. -I.. -g -O2 -c gausspol.cc -fPIC -DPIC -o .libs/gausspol.lo In file included from poly.h:26, from sym2poly.h:23, from sym2poly.cc:32: monomial.h: In function `giac::monomial<T> giac::Untrunc1(const T&, int)': monomial.h:151: error: insufficient contextual information to determine type monomial.h:151: error: base operand of `->' is not a pointer monomial.h:302: confused by earlier errors, bailing out In file included from poly.h:26, from gausspol.h:22, from gausspol.cc:28: monomial.h: In function `giac::monomial<T> giac::Untrunc1(const T&, int)': monomial.h:151: error: insufficient contextual information to determine type monomial.h:151: error: base operand of `->' is not a pointer monomial.h:302: confused by earlier errors, bailing out make[2]: *** [sym2poly.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [gausspol.lo] Error 1 make[2]: Leaving directory `/usr/local/distrib/giac-0.4.0/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/distrib/giac-0.4.0' make: *** [all-recursive-am] Error 2
I am unsure about whether this is an indication that Giac 0.4.0 uses some non-standard C++ features that are now rejected by g++ or if we are presented with a bug in g++. What do you think?
Hello!
First I'm not a C++ expert, therefore I might be wrong, but I don't see anything non-standard inside my code (at least there). Since it compiles with gcc 2.95 to gcc 3.3, either it's a gcc bug or it should be possible to find what's wrong by looking at the gcc Changelog. I'll probably try to compile with gcc 3.4 in the next few days and I'll keep you informed.
Bernard Parisse

bernard.parisse wrote:
First I'm not a C++ expert, therefore I might be wrong, but I don't see anything non-standard inside my code (at least there). Since it compiles with gcc 2.95 to gcc 3.3, either it's a gcc bug or it should be possible to find what's wrong by looking at the gcc Changelog. I'll probably try to compile with gcc 3.4 in the next few days and I'll keep you informed.
Dear Bernard,
one of the problems appears to be in line 151 of monomial.h, where a pair of parentheses seems to be missing. Here is the relevant snippet:
template <class T> monomial<T> Untrunc1(const T & t,int j=0){ index_m new_i; new_i.i()->push_back(j); // ^^ HERE! return monomial<T>(t,new_i); }
Cheers,
Roberto
participants (2)
-
bernard.parisse
-
Roberto Bagnara