home *** CD-ROM | disk | FTP | other *** search
-
- It definitely looks like the compiler you are using has a bug.
-
- The correct behaviour in your machine should be: caller still
- passes c in register, but the callee copies the corresponding byte in the
- register onto stack, and pass down a pointer that points to that byte on
- stack. It sounds like your compiler is not doing this. The object `c' is
- of type `char', not `int', and the compiler shall follow the rule to treat
- it as type `char', ie., even though it is promoted into 4 bytes (because of
- the nature of RISC machine calling convention), every usage of it should
- still be using only one byte unless the compiler can determine that it
- makes no difference either way.
-
- This is a compiler bug, not lucid emacs bug.
-
- BTW, when a function is defined with prototype, its argument is
- not necessarily promoted to widen type. Also, if your compiler has bug, I
- would recommend you to use GCC. GCC works in our box (m88k Delta SVR4).
-
- void
- insert_char (char c)
- {
- ! insert_raw_string (&c, 1);
- }
-
-
- --- Wilson
-
-