jos@cs.vu.nl (11/10/89)
Version: ISE Eiffel, version 2.2, level A, SUN4/sparc
The eiffel compiler does not handle the character constant '#'
correctly. Incorrect C code is generated.
Consider the following class:
============================================================
class CHAR_CONST export
feature
REP_CHAR : CHARACTER is '#';
str : STRING is "appeltje";
Create is
local
rep : INTEGER;
do
rep := str.search_char(REP_CHAR, 1);
end
end
============================================================
Calling es gives the following output:
Eiffel compilation manager
(version 2.2 level A)
Pass 1 on class char_const
Pass 2 on class char_const
Interface has not changed.
Pass 3 on class char_const
"char_const", 13: Warning: search_char is obsolete: Use ``index_of''
Pass 4 on class char_const
C-compiling char_const
char_const.c: 42: CALL: argument mismatch
"char_const.c", line 42: syntax error at or near symbol ,
"char_const.c", line 42: newline in string or char constant
"char_const.c", line 43: too many characters in character constant
es: C-compilation canceled
============================================================
If the constant character is changed to '1', everything works just fine.
Jos Warmer
jos@cs.vu.nl
...uunet!mcvax!cs.vu.nl!jos