📄 dcl2..c
字号:
#line 330 "../../src/dcl2.c"_auto_fct_seen = 1 ; } else #line 332 "../../src/dcl2.c"{ #line 332 "../../src/dcl2.c"_auto_m = _name_dcl ( ( struct name * ) _auto_p , ( struct table * ) #line 332 "../../src/dcl2.c"_auto_this -> _classdef_memtbl , 25 ) ; #line 334 "../../src/dcl2.c"if ( _auto_m ) { #line 334 "../../src/dcl2.c"if ( _auto_m -> _name_n_stclass == 31 ) { #line 335 "../../src/dcl2.c"_auto_m -> _name_n_sto = ( ( #line 335 "../../src/dcl2.c"_auto_tbl == ( struct table * ) gtbl ) ? 0: 31 ) ; #line 337 "../../src/dcl2.c"_auto_static_seen = 1 ; #line 338 "../../src/dcl2.c"if ( _auto_m -> _expr__O4.__C4_n_initializer ) errorFI_PC__E ( ( int ) 's' , ( char * ) "staticM%n withIr", #line 338 "../../src/dcl2.c"_auto_m ) ; } #line 340 "../../src/dcl2.c"if ( _auto_in_union ) { #line 340 "../../src/dcl2.c"if ( _auto_usz < byte_offset ) _auto_usz = byte_offset ; #line 342 "../../src/dcl2.c"byte_offset = 0 ; } } } } #line 352 "../../src/dcl2.c"if ( _auto_in_union ) byte_offset = _auto_usz ; #line 354 "../../src/dcl2.c"if ( _auto_this -> _classdef_virt_count || _auto_bvirt ) { #line 354 "../../src/dcl2.c"Pname _auto_vp [ 100] ; Pname _auto_nn ; #line 358 "../../src/dcl2.c"_auto_nn = ( _table_look ( ( struct table * ) _auto_this -> _classdef_memtbl , ( char * ) "_ctor", #line 358 "../../src/dcl2.c"( int ) 0 ) ) ; #line 359 "../../src/dcl2.c"if ( ( _auto_nn == 0 ) || ( _auto_nn -> _expr__O5.__C5_n_table != _auto_this -> _classdef_memtbl ) ) _auto_make_ctor = #line 359 "../../src/dcl2.c"1 ; #line 361 "../../src/dcl2.c"{ #line 361 "../../src/dcl2.c"char * _auto_s ; Pname _auto_n ; Pname _auto_nn ; #line 362 "../../src/dcl2.c"_auto_s = ( ( ( char * ) ( _new ( ( long ) 20 ) ) #line 362 "../../src/dcl2.c") ) ; #line 363 "../../src/dcl2.c"sprintf ( _auto_s , ( char * ) "%s__vtbl", _auto_this -> _classdef_string ) ; #line 364 "../../src/dcl2.c"_auto_n = ( struct name * ) _name__ctor ( ( struct name * ) 0 , _auto_s ) ; #line 364 "../../src/dcl2.c"#line 365 "../../src/dcl2.c"_auto_n -> _expr__O2.__C2_tp = Pfctvec_type ; #line 366 "../../src/dcl2.c"_auto_nn = _table_insert ( ( struct table * ) gtbl , ( struct name * ) _auto_n , ( int #line 366 "../../src/dcl2.c") 0 ) ; #line 367 "../../src/dcl2.c"{ #line 561 "../../src/cfront.h"( ( struct name * ) _auto_nn ) -> _name_n_used ++ ; } } #line 370 "../../src/dcl2.c"if ( _auto_this -> _classdef_virt_count = _auto_bvirt ) for ( _auto_i = 0 ;( _auto_i < _auto_bvirt ) #line 370 "../../src/dcl2.c";( _auto_i ++ ) ) #line 371 "../../src/dcl2.c"( _auto_vp [ _auto_i ] ) = ( _auto_bcl -> _classdef_virt_init [ _auto_i ] ) #line 371 "../../src/dcl2.c"; #line 373 "../../src/dcl2.c"for ( _auto_nn = _table_get_mem ( ( struct table * ) _auto_this -> _classdef_memtbl , _auto_i = 1 ) ;_auto_nn ;( _auto_nn = #line 373 "../../src/dcl2.c"_table_get_mem ( ( struct table * ) _auto_this -> _classdef_memtbl , ++ _auto_i ) ) ) #line 373 "../../src/dcl2.c"{ #line 373 "../../src/dcl2.c"switch ( #line 373 "../../src/dcl2.c"_auto_nn -> _expr__O2.__C2_tp -> _node_base ) #line 374 "../../src/dcl2.c"{ #line 374 "../../src/dcl2.c"case 108 : { #line 376 "../../src/dcl2.c"Pfct _auto_f ; #line 376 "../../src/dcl2.c"_auto_f = ( ( ( struct fct * ) ( _auto_nn -> _expr__O2.__C2_tp ) ) ) ; #line 377 "../../src/dcl2.c"if ( _auto_bvirt ) { #line 377 "../../src/dcl2.c"Pname _auto_vn ; Pfct _auto_vnf ; #line 378 "../../src/dcl2.c"_auto_vn = _table_look ( ( struct table * ) _auto_btbl , _auto_nn -> _expr__O3.__C3_string , ( int ) 0 ) #line 378 "../../src/dcl2.c"; #line 379 "../../src/dcl2.c"if ( _auto_vn ) { #line 379 "../../src/dcl2.c"if ( _auto_vn -> _expr__O5.__C5_n_table == gtbl ) goto vvv ; #line 381 "../../src/dcl2.c"; #line 382 "../../src/dcl2.c"switch ( _auto_vn -> _expr__O2.__C2_tp -> _node_base ) { #line 382 "../../src/dcl2.c"case 108 : _auto_vnf = ( ( ( struct fct * #line 382 "../../src/dcl2.c") ( _auto_vn -> _expr__O2.__C2_tp ) ) ) ; #line 385 "../../src/dcl2.c"if ( _auto_vnf -> _fct_f_virtual ) { #line 385 "../../src/dcl2.c"if ( _type_check ( ( struct type * ) _auto_vnf , ( #line 385 "../../src/dcl2.c"struct type * ) _auto_f , ( int ) 0 ) ) #line 386 "../../src/dcl2.c"errorFPC__E ( ( char * #line 386 "../../src/dcl2.c") "virtual%nT mismatch:%t and%t", _auto_nn , _auto_f , _auto_vnf ) ; #line 387 "../../src/dcl2.c"_auto_f -> _fct_f_virtual = _auto_vnf -> _fct_f_virtual ; #line 388 "../../src/dcl2.c"( _auto_vp [ _auto_f -> _fct_f_virtual - 1 ] ) = _auto_nn ; } else #line 391 "../../src/dcl2.c"goto vvv ; #line 392 "../../src/dcl2.c"break ; #line 393 "../../src/dcl2.c"case 76 : { #line 394 "../../src/dcl2.c"Pgen _auto_g ; #line 394 "../../src/dcl2.c"_auto_g = ( ( ( struct gen * ) ( _auto_vn -> _expr__O2.__C2_tp ) ) ) ; #line 395 "../../src/dcl2.c"if ( _auto_f -> _fct_f_virtual || ( ( ( struct fct * ) ( _auto_g -> _gen_fct_list -> _name_list_f -> #line 395 "../../src/dcl2.c"_expr__O2.__C2_tp ) ) ) -> _fct_f_virtual ) #line 397 "../../src/dcl2.c"errorFI_PC__E ( ( int ) 's' , ( char * ) #line 397 "../../src/dcl2.c""virtual%n overloaded inBC but not in derivedC", _auto_nn ) ; #line 398 "../../src/dcl2.c"break ; } #line 400 "../../src/dcl2.c"default : goto vvv ; } } else #line 405 "../../src/dcl2.c"goto vvv ; } else #line 407 "../../src/dcl2.c"{ #line 407 "../../src/dcl2.c"vvv : if ( _auto_f -> _fct_f_virtual ) { #line 410 "../../src/dcl2.c"_auto_f -> _fct_f_virtual = ( ++ _auto_this -> #line 410 "../../src/dcl2.c"_classdef_virt_count ) ; #line 412 "../../src/dcl2.c"switch ( _auto_f -> _fct_f_virtual ) { #line 412 "../../src/dcl2.c"case 1 : { #line 414 "../../src/dcl2.c"Pname _auto_vpn ; #line 414 "../../src/dcl2.c"_auto_vpn = ( struct name * ) _name__ctor ( ( struct name * ) 0 , ( char #line 414 "../../src/dcl2.c"* ) "_vptr") ; #line 415 "../../src/dcl2.c"_auto_vpn -> _expr__O2.__C2_tp = Pfctvec_type ; #line 416 "../../src/dcl2.c"( ( _name_dcl ( ( struct name * ) _auto_vpn , ( struct table * ) _auto_this -> _classdef_memtbl , #line 416 "../../src/dcl2.c"25 ) ) ) ; #line 417 "../../src/dcl2.c"_name__dtor ( ( struct name * ) _auto_vpn , 1) ; } #line 419 "../../src/dcl2.c"default : ( _auto_vp [ _auto_f -> _fct_f_virtual - 1 ] ) = _auto_nn ; } } } #line 424 "../../src/dcl2.c"break ; } #line 427 "../../src/dcl2.c"case 76 : { #line 428 "../../src/dcl2.c"Plist _auto_gl ; Pgen _auto_g ; #line 429 "../../src/dcl2.c"_auto_g = ( ( ( struct gen * ) ( _auto_nn -> _expr__O2.__C2_tp ) ) ) ; #line 431 "../../src/dcl2.c"if ( _auto_bvirt ) { #line 431 "../../src/dcl2.c"Pname _auto_vn ; Pgen _auto_g2 ; Pfct _auto_f2 ; #line 432 "../../src/dcl2.c"_auto_vn = _table_look ( ( struct table * ) _auto_btbl , _auto_nn -> _expr__O3.__C3_string , ( int ) 0 ) #line 432 "../../src/dcl2.c"; #line 435 "../../src/dcl2.c"if ( _auto_vn ) { #line 435 "../../src/dcl2.c"if ( _auto_vn -> _expr__O5.__C5_n_table == gtbl ) goto ovvv ; #line 438 "../../src/dcl2.c"switch ( _auto_vn -> _expr__O2.__C2_tp -> _node_base ) { #line 438 "../../src/dcl2.c"default : goto ovvv ; #line 441 "../../src/dcl2.c"case 108 : _auto_f2 = ( ( ( struct fct * ) ( _auto_vn -> _expr__O2.__C2_tp ) ) ) #line 441 "../../src/dcl2.c"; #line 443 "../../src/dcl2.c"if ( _auto_f2 -> _fct_f_virtual || ( ( ( struct fct * ) ( _auto_g -> _gen_fct_list -> _name_list_f -> #line 443 "../../src/dcl2.c"_expr__O2.__C2_tp ) ) ) -> _fct_f_virtual ) #line 445 "../../src/dcl2.c"errorFI_PC__E ( ( int ) 's' , ( char * ) #line 445 "../../src/dcl2.c""virtual%n overloaded in derivedC but not inBC", _auto_nn ) ; #line 446 "../../src/dcl2.c"break ; #line 447 "../../src/dcl2.c"case 76 : _auto_g2 = ( ( ( struct gen * ) ( _auto_vn -> _expr__O2.__C2_tp ) ) ) #line 447 "../../src/dcl2.c"; #line 450 "../../src/dcl2.c"for ( _auto_gl = _auto_g -> _gen_fct_list ;_auto_gl ;( _auto_gl = _auto_gl -> _name_list_l ) ) { #line 450 "../../src/dcl2.c"Pname _auto_fn ; Pfct _auto_f ; Pname _auto_vn2 ; #line 451 "../../src/dcl2.c"_auto_fn = _auto_gl -> _name_list_f ; #line 452 "../../src/dcl2.c"_auto_f = ( ( ( struct fct * ) ( _auto_fn -> _expr__O2.__C2_tp ) ) ) ; #line 453 "../../src/dcl2.c"_auto_vn2 = _gen_find ( ( struct gen * ) _auto_g2 , ( struct fct * ) _auto_f ) ; #line 455 "../../src/dcl2.c"if ( _auto_vn2 == 0 ) { #line 455 "../../src/dcl2.c"if ( _auto_f -> _fct_f_virtual ) errorFI_PC__E ( ( int ) #line 455 "../../src/dcl2.c"'s' , ( char * ) "virtual overloaded%n not found inBC", _auto_fn ) ; } else #line 458 "../../src/dcl2.c"{ #line 458 "../../src/dcl2.c"Pfct _auto_vn2f ; #line 459 "../../src/dcl2.c"_auto_vn2f = ( ( ( struct fct * ) ( _auto_vn2 -> _expr__O2.__C2_tp ) ) ) ; #line 460 "../../src/dcl2.c"if ( _auto_vn2f -> _fct_f_virtual ) { #line 460 "../../src/dcl2.c"_auto_f -> _fct_f_virtual = _auto_vn2f -> _fct_f_virtual ; #line 462 "../../src/dcl2.c"( _auto_vp [ _auto_f -> _fct_f_virtual - 1 ] ) = _auto_fn ; } } } #line 466 "../../src/dcl2.c"break ; } } else #line 470 "../../src/dcl2.c"goto ovvv ; } else #line 472 "../../src/dcl2.c"{ #line 472 "../../src/dcl2.c"ovvv : for ( _auto_gl = _auto_g -> _gen_fct_list ;_auto_gl ;( _auto_gl = _auto_gl -> _name_list_l ) ) { #line 472 "../../src/dcl2.c"#line 474 "../../src/dcl2.c"Pname _auto_fn ; Pfct _auto_f ; #line 475 "../../src/dcl2.c"_auto_fn = _auto_gl -> _name_list_f ; #line 476 "../../src/dcl2.c"_auto_f = ( ( ( struct fct * ) ( _auto_fn -> _expr__O2.__C2_tp ) ) ) ; #line 479 "../../src/dcl2.c"if ( _auto_f -> _fct_f_virtual ) { #line 479 "../../src/dcl2.c"_auto_f -> _fct_f_virtual = ( ++ _auto_this -> _classdef_virt_count ) ; #line 481 "../../src/dcl2.c"switch ( _auto_f -> _fct_f_virtual ) { #line 481 "../../src/dcl2.c"case 1 : { #line 483 "../../src/dcl2.c"Pname _auto_vpn ; #line 483 "../../src/dcl2.c"_auto_vpn = ( struct name * ) _name__ctor ( ( struct name * ) 0 , ( char #line 483 "../../src/dcl2.c"* ) "_vptr") ; #line 484 "../../src/dcl2.c"_auto_vpn -> _expr__O2.__C2_tp = Pfctvec_type ; #line 485 "../../src/dcl2.c"( ( _name_dcl ( ( struct name * ) _auto_vpn , ( struct table * ) _auto_this -> _classdef_memtbl , #line 485 "../../src/dcl2.c"( int ) 0 ) ) ) ; #line 486 "../../src/dcl2.c"_name__dtor ( ( struct name * ) _auto_vpn , 1) ; } #line 488 "../../src/dcl2.c"default : ( _auto_vp [ _auto_f -> _fct_f_virtual - 1 ] ) = _auto_fn ; } } } } #line 494 "../../src/dcl2.c"break ; } } } #line 498 "../../src/dcl2.c"_auto_this -> _classdef_virt_init = ( ( ( struct name * * ) ( _new ( #line 498 "../../src/dcl2.c"( long ) ( 4* _auto_this -> _classdef_virt_count ) ) ) ) ) ; #line 499 "../../src/dcl2.c"for ( _auto_i = 0 ;( _auto_i < _auto_this -> _classdef_virt_count ) ;( _auto_i ++ ) ) ( _auto_this -> #line 499 "../../src/dcl2.c"_classdef_virt_init [ _auto_i ] ) = ( _auto_vp [ _auto_i ] ) ; } #line 502 "../../src/dcl2.c"; #line 503 "../../src/dcl2.c"for ( _auto_p = _auto_this -> _classdef_pubdef ;_auto_p ;( _auto_p = _auto_pnx ) ) { #line 503 "../../src/dcl2.c"char * _auto_qs ; char * _auto_ms ; Pname _auto_cx ; Ptable _auto_ctbl ; Pname _auto_mx ; #line 504 "../../src/dcl2.c"_auto_qs = _auto_p -> _name__O6.__C6_n_qualifier -> _expr__O3.__C3_string ; #line 505 "../../src/dcl2.c"_auto_ms = _auto_p -> _expr__O3.__C3_string ; #line 509 "../../src/dcl2.c"_auto_pnx = _auto_p -> _name_n_list ; #line 511 "../../src/dcl2.c"if ( strcmp ( _auto_ms , _auto_qs ) == 0 ) _auto_ms = "_ctor"; #line 513 "../../src/dcl2.c"for ( _auto_cx = _auto_this -> _classdef_clbase ;_auto_cx ;( _auto_cx = ( ( ( struct classdef * ) ( _auto_cx -> #line 513 "../../src/dcl2.c"_expr__O2.__C2_tp ) ) ) -> _classdef_clbase ) ) #line 513 "../../src/dcl2.c"{ #line 513 "../../src/dcl2.c"if ( strcmp ( _auto_cx -> _expr__O3.__C3_string , _auto_qs ) == #line 513 "../../src/dcl2.c"0 ) #line 514 "../../src/dcl2.c"goto ok ; } #line 516 "../../src/dcl2.c"errorFPC__E ( ( char * ) "publicQr %s not aBC", _auto_qs ) ; #line 517 "../../src/dcl2.c"continue ; #line 518 "../../src/dcl2.c"ok : _auto_ctbl = ( ( ( struct classdef * ) ( _auto_cx -> _expr__O2.__C2_tp ) ) ) -> #line 518 "../../src/dcl2.c"_classdef_memtbl ; #line 520 "../../src/dcl2.c"_auto_mx = _table_lookc ( ( struct table * ) _auto_ctbl , _auto_ms , ( int ) 0 ) ; #line 520 "../../src/dcl2.c"#line 522 "../../src/dcl2.c"if ( Ebase ) { #line 522 "../../src/dcl2.c"if ( ! _classdef_has_friend ( ( struct classdef * ) Ebase , ( #line 522 "../../src/dcl2.c"struct name * ) cc -> _dcl_context_nof ) ) #line 523 "../../src/dcl2.c"errorFPC__E ( ( char * ) "QdMN%n is in privateBC", _auto_p ) ; #line 523 "../../src/dcl2.c"} else #line 525 "../../src/dcl2.c"if ( Epriv ) { #line 525 "../../src/dcl2.c"if ( ! _classdef_has_friend ( ( struct classdef * ) #line 525 "../../src/dcl2.c"Epriv , ( struct name * ) cc -> _dcl_context_nof ) ) #line 526 "../../src/dcl2.c"errorFPC__E ( ( char * ) "QdMN%n is private", #line 526 "../../src/dcl2.c"_auto_p ) ; } #line 529 "../../src/dcl2.c"if ( _auto_mx == 0 ) { #line 529 "../../src/dcl2.c"errorFPC__E ( ( char * ) "C%n does not have aM %s", _auto_cx , #line 529 "../../src/dcl2.c"_auto_p -> _expr__O3.__C3_string ) ; #line 531 "../../src/dcl2.c"_auto_p -> _expr__O2.__C2_tp = ( struct type * ) any_type ; } else #line 533 "../../src/dcl2.c"{ #line 533 "../../src/dcl2.c"if ( _auto_mx -> _expr__O2.__C2_tp -> _node_base == 76 ) errorFI_PC__E ( ( int ) 's' , #line 533 "../../src/dcl2.c"( char * ) "public specification of overloaded%n", _auto_mx ) ; #line 535 "../../src/dcl2.c"_auto_p -> _node_base = 25 ; } #line 538 "../../src/dcl2.c"_auto_p -> _name__O6.__C6_n_qualifier = _auto_mx ; #line 539 "../../src/dcl2.c"( ( _table_insert ( ( struct table * ) _auto_this -> _classdef_memtbl , ( struct name * ) _auto_p , #line 539 "../../src/dcl2.c"( int ) 0 ) ) ) ; #line 541 "../../src/dcl2.c"if ( Nold ) errorFPC__E ( ( char * ) "twoDs of CM%n", _auto_p ) ; } #line 543 "../../src/dcl2.c"_auto_this -> _classdef_pubdef = 0 ; #line 545 "../../src/dcl2.c"if ( bit_offset ) byte_offset += ( ( bit_offset / BI_IN_BYTE ) + 1 ) ; #line 546 "../../src/dcl2.c"_auto_this -> _classdef_real_size = byte_offset ; #line 548 "../../src/dcl2.c"if ( byte_offset < SZ_STRUCT ) byte_offset = SZ_STRUCT ; #line 549 "../../src/dcl2.c"{ #line 549 "../../src/dcl2.c"int _auto_waste ; Plist _auto_fl ; #line 549 "../../src/dcl2.c"_auto_waste = ( byte_offset % max_align ) ; #line 550 "../../src/dcl2.c"if ( _auto_waste ) byte_offset += ( max_align - _auto_waste ) ; #line 552 "../../src/dcl2.c"_auto_this -> _classdef_obj_size = byte_offset ; #line 553 "../../src/dcl2.c"_auto_this -> _classdef_obj_align = max_align ; #line 555 "../../src/dcl2.c"if ( ( _table_look ( ( struct table * ) _auto_this -> _classdef_memtbl , ( char * ) #line 555 "../../src/dcl2.c""_dtor", ( int ) 0 ) ) && ( ( _table_look ( ( struct table * #line 555 "../../src/dcl2.c") _auto_this -> _classdef_memtbl , ( char * ) "_ctor", ( int ) 0 ) ) #line 555 "../../src/dcl2.c"== 0 ) ) #line 556 "../../src/dcl2.c"errorFI_PC__E ( ( int ) 'w' , ( char * ) "%s has destructor but
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -