Notes |
|
|
I've added the workaround for this to compiler/Mercury.options and committed it. |
|
|
|
--common-struct seems to be triggering the problem. The bug does not occur with
--no-common-struct. |
|
|
(0000082)
|
zs
|
2008-02-28 16:33
|
|
The problem is caused by one or more bugs in common.m, as shown by the attached diff between the HLDS dumps at level 55 and 65. The diff shows that common.m finds and eliminates several common structures, most of which are type_infos or type_ctor_infos, and one of which is an ordinary field of the analysis_info structure. I have visually examined the diff and I think all these changes in the code are fine.
The problems lie in the changes to the rtti var maps. The diff shows some updates to type_class_info maps that I don't think should be there. It does NOT show updates to type_info maps that SHOULD be there. Common.m eliminates several type_info variables, replacing them with references to other, identical type_info variables, but does not update the rtti_var_maps. (common.m was written BEFORE we added rtti_var_maps.) I believe these dangling references that cause the bug symptom. |
|
|
|
For reference, this is r1.2 of compiler/analysis.m. |
|
|
(0000091)
|
mark
|
2008-03-26 12:51
|
|
I've committed one fix to some dangling references left by common.m
(26/3/2008). This allows compilation of analysis.m to complete.
However, similar segfaults have been reported in the G12 project,
so I'll leave this bug open and investigate further. |
|
|
(0000092)
|
mark
|
2008-03-26 15:32
|
|
The other failures were caused by a different bug,
which I have reported as bug 0000054 |
|