[gnu.g++.bug] BUG LOCATED IN COMPILER SOURCE

jj@idris.id.dk (Jesper Joergensen [ris]) (01/11/90)

ATTN: Michael Tiemann

Hi again,

  I have just located another bug in the compiler and found the erroneous piece
  of code as well. This time it was no trouble locating the error, since no
  debugging was required.

  We are talking:	G++ version 1.36.1
  configured for:	vax (BSD machines)
  running under:	Ultrix V2.2-1 Worksystem V1.1 System #2
  running on a:		DEC VAXstation 2000

  The function we're talking about is  `report_type_mismatch' in file
  `cplus-method.c' where lines 1292 to 1295 says:

  1292:  if (TREE_READONLY (TREE_TYPE (TREE_VALUE (parmtypes))))
  1293:    error ("call to const %s `%s' with non-const object", name_kind, err_name);
  1294:  else
  1295:    error ("call to non-const %s `%s' with const object", name_kind, err_name);

  These two error messages should be swapped or the condition reversed, since
  TREE_READONLY must mean the object is const (i.e. the method isn't). I
  actually don't see any use for the first error message (1293), since calling
  a const method with a non-const object is not forbidden (isn't it a compiler
  error).

  I got the message while attempting to call a non-const method within a const
  member function (in which the *this object is const of course).


  Will this error be corrected in version 1.36.2 or is it too late ???

  If it is not part of version 1.36.2 can I then patch it myself as I have
  described here ???

	Thanks for your attention (hope I'm not wrong &:^)

	Jesper Jorgensen	jj@idris.id.dk

	Research associate
	Department of Computer Science
	Technical University of Denmark
	DK-2800 Lyngby
	DENMARK