https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119914

Gaius Mulley <gaius at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #61183|0                           |1
        is obsolete|                            |

--- Comment #3 from Gaius Mulley <gaius at gcc dot gnu.org> ---
Created attachment 61189
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61189&action=edit
Proposed fix for constant being passed to an unbounded array of BYTE

$ gm2 constintarraybyte.mod 
constintarraybyte.mod:9:42: error: 2nd parameter failure due to assignment
incompatibility between actual parameter ‘42’ and the 2nd formal ‘w’ parameter
in procedure ‘Sprintf1’
    9 |    s := Sprintf1 (InitString("abc%x\n"), 42)
      |                                          ^~
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/16.0.0/m2/m2pim/FormatStrings.def:49:34:
error: In procedure ‘Sprintf1’: formal parameter ‘w’
   49 | PROCEDURE Sprintf1 (fmt: String; w: ARRAY OF BYTE) : String ;
      |                                  ^
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/16.0.0/m2/m2pim/wrapc.def:172:1:
error: no scope active: actual parameter ‘42’

$ gm2 foo.mod 
foo.mod:44:48: error: 2nd parameter failure due to assignment incompatibility
between actual parameter ‘42’ and the 2nd formal ‘w’ parameter in procedure
‘Sprintf1’
   44 |    WriteString(Sprintf1(InitString("abc%u\n"), 42));
      |                                                ^~
foo.mod:47:48: error: 2nd parameter failure due to assignment incompatibility
between actual parameter ‘42’ and the 2nd formal ‘w’ parameter in procedure
‘Sprintf1’
   47 |    WriteString(Sprintf1(InitString("abc%x\n"), 42));
      |                                                ^~
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/16.0.0/m2/m2pim/FormatStrings.def:49:34:
error: In procedure ‘Sprintf1’: formal parameter ‘w’
   49 | PROCEDURE Sprintf1 (fmt: String; w: ARRAY OF BYTE) : String ;
      |                                  ^
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/16.0.0/m2/m2pim/FormatStrings.def:49:34:
error: formal parameter ‘w’
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/16.0.0/m2/m2pim/FormatStrings.def:49:34:
error: formal parameter ‘w’
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/16.0.0/m2/m2pim/wrapc.def:172:1:
error: no scope active: actual parameter ‘42’
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/16.0.0/m2/m2pim/wrapc.def:172:1:
error: actual parameter ‘42’
/home/gaius/opt/lib/gcc/x86_64-pc-linux-gnu/16.0.0/m2/m2pim/wrapc.def:172:1:
error: actual parameter constant
foo.mod:40:48: error: 2nd parameter failure due to assignment incompatibility
between actual parameter constant and the 2nd formal ‘w’ parameter in procedure
‘Sprintf1’
   40 |    WriteString(Sprintf1(InitString("abc%d\n"), -42));
      |                                                ^~~

Reply via email to