2024-07-18 08:39 AEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000441mercuryBugpublic2017-10-18 23:42
Assigned Tozs 
Product Version 
Target VersionFixed in Version 
Summary0000441: Invalid C code for program in hlc.gc grade
DescriptionThe attached program compiles and runs successfully in the asm_fast.gc grade. The generated C code
fails to compile in the hlc.gc grade with the following error:

Mercury/cs/test_vfm2.c: In function ‘test_vfm2__hello_1_f_0’:
Mercury/cs/test_vfm2.c:130:18: error: void value not ignored as it ought to be
     HeadVar__2_2 = vfm2__printLine_2_f_0(TypeCtorInfo_5_5, TypeCtorInfo_6_6, ((MR_Box) (Var_4)), FIO_3);
** Error making `Mercury/os/test_vfm2.o'.

This is using rotd-2017-10-15 (although it also occurs with old roads).
TagsNo tags attached.
Attached Files




zs (developer)

The problem is NOT we generate the line that the error message is for.
The problem is that vfm2.m knows that fio is a dummy type, and makes
the return type of vfm2__printline_2_f_0 void accordingly, even though it keeps
the definition of fio(T) *private*. This means that fio is NOT known to be a dummy
type anywhere but inside the vfm2 module.

We will need to split the concept of "dummy type" into two: dummy types
that are known to be dummy everywhere, and those known to be dummy
only in their defining module.

-Issue History
Date Modified Username Field Change
2017-10-18 22:47 juliensf New Issue
2017-10-18 22:47 juliensf File Added: vfm2_bug.tar.gz
2017-10-18 23:28 zs Assigned To => zs
2017-10-18 23:28 zs Status new => assigned
2017-10-18 23:42 zs Note Added: 0000958
+Issue History