tiemann@ARKESDEN.ENG.SUN.COM (Michael Tiemann) (10/09/89)
Michael,
I have brought up the new beta release of g++ (Oct 2 version).
I am having trouble with some of my (and other peoples) code that uses
`static const foo = 5' constructs in .h files. In previous versions,
this worked fine. Now, I get `Undefined symbol _foo ...' at ld-time.
Is this a bug in the latest version of g++, or a correct implementation?
Thanks,
rob collins
rjc@cs.ucla.edu
It was a screw-up. Here is a fix:
arkesden% diff -c2 cplus-typeck.c~ cplus-typeck.c
*** cplus-typeck.c~ Sun Oct 1 23:33:05 1989
--- cplus-typeck.c Mon Oct 9 02:20:12 1989
***************
*** 5132,5136 ****
if (type == TREE_TYPE (rhs) && TREE_CODE (type) != UNKNOWN_TYPE)
! return rhs;
return convert_for_assignment (type, rhs, errtype);
--- 5132,5140 ----
if (type == TREE_TYPE (rhs) && TREE_CODE (type) != UNKNOWN_TYPE)
! {
! if (TREE_READONLY (rhs) && TREE_CODE (rhs) == VAR_DECL)
! rhs = decl_constant_value (rhs);
! return rhs;
! }
return convert_for_assignment (type, rhs, errtype);
arkesden%
Michael