karl@ra.umb.edu ("Karl Berry.") (11/27/88)
% gcc -gg -c test.c gcc: Program cc1 got fatal signal 6. If the -gg is replaced by -g, all is fine. test.c is the following (rather large, sorry) file. Karl. karl@umb.edu # 1 "write_gf.c" # 1 "../include/gf.h" # 1 "../include/types.h" typedef unsigned char one_byte; typedef char signed_byte; typedef unsigned short two_bytes; typedef short signed_2_bytes; typedef unsigned int four_bytes; typedef int signed_4_bytes; typedef int byte_count_type; typedef double real; typedef long int scaled; typedef long int fix_word; typedef int file_descriptor_type; typedef void *address; typedef char *string; typedef enum {false=0, true=1} boolean; # 6 "../include/gf.h" # 1 "../include/generic.h" # 1 "../include/types.h" # 30 "../include/types.h" # 4 "../include/generic.h" typedef struct { signed_4_bytes max_row, min_row; signed_4_bytes max_col, min_col; } bounding_box_type; typedef struct { one_byte char_code; signed_4_bytes h_escapement; fix_word tfm_width; } character_locator; typedef unsigned char matrix_element_type; typedef matrix_element_type ** matrix_type; typedef unsigned short matrix_index_type; typedef struct { four_bytes char_code; matrix_type bitmap; signed_4_bytes h_escapement; fix_word tfm_width; bounding_box_type char_bb; string string_special; scaled * numeric_special; } generic_char_type; # 7 "../include/gf.h" extern boolean open_gf_input_file( ); extern void close_gf_input_file(); extern boolean open_gf_output_file( ); extern void close_gf_output_file(); extern string get_gf_preamble(); extern void put_gf_preamble( ); typedef struct { fix_word design_size; unsigned h_resolution, v_resolution; bounding_box_type font_bb; character_locator char_loc[256 ]; string string_special; scaled * numeric_special; } gf_postamble_type; extern gf_postamble_type get_gf_postamble(); extern void put_gf_postamble( ); typedef generic_char_type gf_char_type; extern generic_char_type get_gf_char( ); extern void put_gf_char( ); extern matrix_type allocate_gf_bitmap( ); typedef enum {NO_COLOR = -1, WHITE = 0, BLACK = 1} color_type; extern color_type get_pixel_at( ); extern void set_pixel_at( ); # 7 "write_gf.c" # 1 "../gf/private_gf.h" # 1 "../include/global.h" # 1 "/usr/include/stdio.h" extern struct _iobuf { int _cnt; unsigned char *_ptr; unsigned char *_base; int _bufsiz; short _flag; char _file; } _iob[]; extern struct _iobuf *fopen(); extern struct _iobuf *fdopen(); extern struct _iobuf *freopen(); extern struct _iobuf *popen(); extern struct _iobuf *tmpfile(); extern long ftell(); extern char *fgets(); extern char *gets(); extern char *ctermid(); extern char *cuserid(); extern char *tempnam(); extern char *tmpnam(); # 10 "../include/global.h" # 1 "/usr/include/sys/file.h" # 1 "/usr/include/sys/fcntl.h" struct flock { short l_type; short l_whence; long l_start; long l_len; short l_pid; short l_xxx; }; # 9 "/usr/include/sys/file.h" # 37 "/usr/include/sys/file.h" # 84 "/usr/include/sys/file.h" # 11 "../include/global.h" # 1 "/usr/include/math.h" extern int errno, signgam; extern double fmod(), gamma(); extern int matherr(); extern double asinh(), acosh(), atanh(); extern double erf(), erfc(); extern double exp(), expm1(), log(), log10(), log1p(), pow(); extern double fabs(), floor(), ceil(), rint(); extern double lgamma(); extern double hypot(), cabs(); extern double copysign(), drem(), logb(), scalb(); extern int finite(); extern double j0(), j1(), jn(), y0(), y1(), yn(); extern double sin(), cos(), tan(), asin(), acos(), atan(), atan2(); extern double sinh(), cosh(), tanh(); extern double cbrt(), sqrt(); extern double modf(), ldexp(), frexp(), atof(); # 55 "/usr/include/math.h" struct exception { int type; char *name; double arg1; double arg2; double retval; }; # 12 "../include/global.h" # 1 "/usr/include/strings.h" char *strcat(); char *strncat(); int strcmp(); int strncmp(); char *strcpy(); char *strncpy(); int strlen(); char *index(); char *rindex(); # 13 "../include/global.h" # 1 "/usr/include/ctype.h" extern char _ctype_[]; # 14 "../include/global.h" # 1 "../include/types.h" # 30 "../include/types.h" # 15 "../include/global.h" # 1 "../include/kbase.h" # 1 "../include/global.h" # 144 "../include/global.h" # 4 "../include/kbase.h" # 1 "../include/types.h" # 30 "../include/types.h" # 5 "../include/kbase.h" extern address malloc(), realloc(); extern address allocate( ); extern address reallocate( ); extern address allocate_array( ); extern string substring( ); extern boolean contains( ); extern int pos( ); extern string concat( ); extern string init_string(); extern void set_string_element( ); extern string *break_string( ); # 1 "../include/bounding_box.h" # 1 "../include/generic.h" # 52 "../include/generic.h" # 11 "../include/bounding_box.h" extern bounding_box_type font_bounding_box; extern bounding_box_type find_cartesian_letter_bounding_box(); extern bounding_box_type cartesian_to_matrix_bounding_box(); extern void init_font_bounding_box(); extern void update_font_bounding_box(); extern bounding_box_type get_font_bounding_box(); # 41 "../include/kbase.h" extern void put_byte( ); extern void put_two( ); extern void put_four( ); extern void put_signed_four( ); extern void put_n_bytes( ); extern one_byte get_byte(); extern two_bytes get_two(); extern four_bytes get_four(); extern signed_4_bytes get_signed_four(); extern address get_n_bytes( ); extern four_bytes get_n_byte_value( ); extern one_byte get_previous_byte(); extern two_bytes get_previous_two(); extern four_bytes get_previous_four(); extern void match_byte( ); extern void match_previous_byte( ); extern void move_to_byte( ); extern four_bytes cur_pos(); extern real fix_to_real( ); extern fix_word real_to_fix( ); extern void print_scaled( ); extern real scaled_to_real( ); extern scaled real_to_scaled( ); # 16 "../include/global.h" extern int write(), read(), open(), lseek(), tell(), abs(), fprintf(); extern int fread(), fwrite(), fseek(), fclose(), rename(), _filbuf(); extern void exit(), close(), fflush(), perror(); extern void sprintf(), printf(); extern void free(); extern address malloc(); extern string strchr(), strrchr(); typedef char allocated_string[ 80 ]; typedef short side_bearings_value_type; typedef struct side_bearings_structure{ side_bearings_value_type left; side_bearings_value_type right; } side_bearings_type; typedef unsigned char ascii_value_type; typedef unsigned char direction_and_degree_type; typedef unsigned short direction_and_length_type; typedef short segment_point_value_type; typedef struct { segment_point_value_type x; segment_point_value_type y; } segment_point_type; typedef struct { int x; int y; } change_in_type; typedef double scale_factor_type; # 10 "../gf/private_gf.h" # 1 "../include/gf.h" # 68 "../include/gf.h" # 11 "../gf/private_gf.h" # 1 "../gf/gf_opcodes.h" # 12 "../gf/private_gf.h" # 1 "../include/font_io.h" typedef unsigned short resolution_type; typedef struct { unsigned char font_name_length; char * font_name; resolution_type font_resolution; } file_header_type; extern int open_input( ); extern int open_output( ); extern file_header_type read_file_header( ); extern void write_file_header( ); extern void write_bytes( ); extern boolean read_string( ); extern void write_string( ); extern byte_count_type get_byte_count(); # 13 "../gf/private_gf.h" # 26 "../gf/private_gf.h" typedef struct full_boc_structure{ four_bytes char_code; four_bytes back_pointer; four_bytes min_col; four_bytes max_col; four_bytes min_row; four_bytes max_row; } full_boc_type; typedef struct abbreviated_boc_structure{ one_byte char_code; one_byte col_delta; one_byte max_col; one_byte row_delta; one_byte max_row; } abbreviated_boc_type; extern int current_input_file_descriptor; extern int current_output_file_descriptor; extern boolean postamble_read; extern gf_postamble_type private_gf_postamble; typedef struct char_postamble_info_structure{ byte_count_type char_start; signed_4_bytes h_escapement; fix_word tfm_width; } char_postamble_info_type; typedef char_postamble_info_type char_postamble_info_vector_type[256 ]; extern char_postamble_info_vector_type char_postamble_info; extern byte_count_type byte_count_after_last_eoc, byte_count_before_post; extern boolean get_command(); extern boolean back_up_one_byte(); extern gf_char_type init_gf_char(); boolean get_this_char_postamble_info(); # 8 "write_gf.c" void write_gf_preamble(file_descriptor) int file_descriptor; { allocated_string comment = "fill_outlines output."; current_output_file_descriptor = file_descriptor; put_gf_preamble(comment); } # 1 "../gf/matrix.h" # 1 "../include/gf.h" # 68 "../include/gf.h" # 7 "../gf/matrix.h" extern void allocate_square_matrix(); extern void allocate_rectangular_matrix(); extern void change_matrix_element(); extern void clear_matrix(); extern void set_max_matrix_rows(); extern void set_max_matrix_cols(); extern matrix_type get_private_matrix(); extern void set_private_matrix(); extern color_type opposite_color(); extern void fill_backwards_from_here(); extern matrix_type matrix; extern matrix_index_type max_matrix_rows, max_matrix_cols; extern color_type unpack(); extern int bit_position_in_column(); # 43 "write_gf.c" # 1 "rasterize.h" # 1 "../include/global.h" # 144 "../include/global.h" # 10 "rasterize.h" typedef unsigned short line_direction_type; typedef unsigned short length_type; typedef struct rasterized_letter_header_structure{ ascii_value_type ascii_value; side_bearings_type side_bearings; } rasterized_letter_header_type; typedef struct rasterized_line_structure { segment_point_type start_point; line_direction_type direction; length_type length; } rasterized_line_type; # 44 "write_gf.c" # 1 "../include/bounding_box.h" # 34 "../include/bounding_box.h" # 45 "write_gf.c" # 1 "../gf/map.h" # 1 "../gf/matrix.h" # 1 "../include/gf.h" # 68 "../include/gf.h" # 7 "../gf/matrix.h" extern void allocate_square_matrix(); extern void allocate_rectangular_matrix(); extern void change_matrix_element(); extern void clear_matrix(); extern void set_max_matrix_rows(); extern void set_max_matrix_cols(); extern matrix_type get_private_matrix(); extern void set_private_matrix(); extern color_type opposite_color(); extern void fill_backwards_from_here(); extern matrix_type matrix; extern matrix_index_type max_matrix_rows, max_matrix_cols; extern color_type unpack(); extern int bit_position_in_column(); # 9 "../gf/map.h" extern matrix_index_type map_world_x_to_matrix(); extern matrix_index_type map_world_y_to_matrix(); # 46 "write_gf.c" void write_gf_letter(file_descriptor, letter_header, cartesian_letter_bounding_box) int file_descriptor; rasterized_letter_header_type letter_header; bounding_box_type cartesian_letter_bounding_box; { gf_char_type gf_char; gf_char = init_gf_char(); current_output_file_descriptor = file_descriptor; gf_char.char_code = (four_bytes) letter_header.ascii_value; gf_char.char_bb.min_col = (four_bytes)(letter_header.side_bearings.left); gf_char.char_bb.max_col = (four_bytes) (map_world_x_to_matrix( cartesian_letter_bounding_box, cartesian_letter_bounding_box.max_col ) + letter_header.side_bearings.left) ; gf_char.char_bb.min_row = (four_bytes) cartesian_letter_bounding_box.min_row ; gf_char.char_bb.max_row = (four_bytes) cartesian_letter_bounding_box.max_row ; gf_char.bitmap = get_private_matrix(); gf_char.h_escapement = (signed_4_bytes) (gf_char.char_bb.max_col + letter_header.side_bearings.right) * 65536 ; gf_char.tfm_width = 0; put_gf_char(gf_char); } void write_gf_postamble(file_descriptor, font_resolution) int file_descriptor; resolution_type font_resolution; { four_bytes design_size = 0; four_bytes h_resolution; four_bytes v_resolution; current_output_file_descriptor = file_descriptor; h_resolution = (four_bytes) (((double)font_resolution / 72.27 ) * 65536 ); v_resolution = h_resolution; put_gf_postamble(0 , 0 , design_size, h_resolution, v_resolution); }