L.S.
On a Debian system (woody) with gpc version:
20020410, based on gcc-2.95.4 20011002 (Debian prerelease)
the code below yields the following:
home/doko/packages/gcc/2.95/x/gcc-2.95-2.95.4.ds11/src-native/gcc/p/module.c:3384:create_gpi_files: failed assertion `itab->interface_name_node' bug.p:11: Internal compiler error: bug.p:11: Internal compiler error. Please submit a full bug report to the GPC mailing list gpc@gnu.de. See URL:http://www.gnu-pascal.de/todo.html for details.
The problem goes away if the IMPORT is removed.
Any pointers?
CODE: ==================================== MODULE A;
EXPORT A = ( B );
{ removing the next 2 lines resolves the issue. } IMPORT StandardOutput;
PROCEDURE B; END;
PROCEDURE B; BEGIN END;
END. =========================================
Thanks in advance, Sietse Achterop (University of Groningen, The Netherlands, computing science department)
PS. On other systems (e.g. Suse with version 2.95.3 20010315 (SuSE) ) there are no problems.
S. Achterop IWI-120 3932 wrote:
home/doko/packages/gcc/2.95/x/gcc-2.95-2.95.4.ds11/src-native/gcc/p/module.c:3384:create_gpi_files: failed assertion `itab->interface_name_node'
Try the following patch:
--- p/module.c.orig Thu Sep 19 02:00:06 2002 +++ p/module.c Thu Sep 19 02:05:05 2002 @@ -4088,12 +4088,16 @@ current_module->input_file_node = global_input_file_node; exported_name_list = build_tree_list (NULL_TREE, identifier_input); (void) get_interface_table (interface, interface, 1); + itab_check_gpi_checksum (interface, 0, 1); + TREE_STATIC (imported) = 1; } else if (interface == standard_interface_output) { current_module->output_file_node = global_output_file_node; exported_name_list = build_tree_list (NULL_TREE, identifier_output); (void) get_interface_table (interface, interface, 1); + itab_check_gpi_checksum (interface, 0, 1); + TREE_STATIC (imported) = 1; } else if (interface == standard_interface_error) { @@ -4102,6 +4106,8 @@ current_module->error_file_node = global_error_file_node; exported_name_list = build_tree_list (NULL_TREE, identifier_stderr); (void) get_interface_table (interface, interface, 1); + itab_check_gpi_checksum (interface, 0, 1); + TREE_STATIC (imported) = 1; } else {
Frank