📄 expr2..c
字号:
#line 719 "../../src/cfront.h"extern int NFe ; #line 719 "../../src/cfront.h"extern int NFl ; #line 720 "../../src/cfront.h"extern char * line_format ; #line 722 "../../src/cfront.h"extern Plist isf_list ; #line 723 "../../src/cfront.h"extern Pstmt st_ilist ; #line 724 "../../src/cfront.h"extern Pstmt st_dlist ; #line 725 "../../src/cfront.h"extern Ptable sti_tbl ; #line 726 "../../src/cfront.h"extern Ptable std_tbl ; #line 728 "../../src/cfront.h"extern Ptype np_promote ( ) ; #line 729 "../../src/cfront.h"extern int new_key ( ) ; #line 731 "../../src/cfront.h"extern Pname dcl_list ; #line 732 "../../src/cfront.h"extern int over_call ( ) ; #line 733 "../../src/cfront.h"extern Pname Nover ; #line 734 "../../src/cfront.h"extern Pname Ncoerce ; #line 735 "../../src/cfront.h"extern int Nover_coerce ; #line 737 "../../src/cfront.h"#line 738 "../../src/cfront.h"struct iline { /* sizeof = 108 */Pname _iline_fct_name ; Pin _iline_i_next ; Ptable _iline_i_table ; Pname _iline_local [ 8] ; Pexpr _iline_arg [ 8] ; Ptype _iline_tp [ 8] ; } ; #line 747 "../../src/cfront.h"extern Pexpr curr_expr ; #line 748 "../../src/cfront.h"extern Pin curr_icall ; #line 751 "../../src/cfront.h"extern Pstmt curr_loop ; #line 752 "../../src/cfront.h"extern Pblock curr_block ; #line 753 "../../src/cfront.h"extern Pstmt curr_switch ; #line 754 "../../src/cfront.h"extern bit arg_err_suppress ; #line 755 "../../src/cfront.h"extern struct loc last_line ; #line 757 "../../src/cfront.h"extern int no_of_undcl ; #line 758 "../../src/cfront.h"extern int no_of_badcall ; #line 759 "../../src/cfront.h"extern Pname undcl ; #line 759 "../../src/cfront.h"extern Pname badcall ; #line 761 "../../src/cfront.h"extern int strlen ( ) ; #line 762 "../../src/cfront.h"extern int strcpy ( ) ; #line 763 "../../src/cfront.h"extern int strcmp ( ) ; #line 764 "../../src/cfront.h"extern int str_to_int ( ) ; #line 765 "../../src/cfront.h"extern int c_strlen ( ) ; #line 767 "../../src/cfront.h"extern Pname vec_new_fct ; #line 768 "../../src/cfront.h"extern Pname vec_del_fct ; #line 777 "../../src/cfront.h"extern Pname find_hidden ( ) ; #line 778 "../../src/cfront.h"extern TOK lalex ( ) ; #line 779 "../../src/cfront.h"extern int Nstd ; #line 781 "../../src/cfront.h"extern int stcount ; #line 41 "../../src/size.h"extern int BI_IN_WORD ; #line 42 "../../src/size.h"extern int BI_IN_BYTE ; #line 44 "../../src/size.h"extern int SZ_CHAR ; #line 45 "../../src/size.h"extern int AL_CHAR ; #line 47 "../../src/size.h"extern int SZ_SHORT ; #line 48 "../../src/size.h"extern int AL_SHORT ; #line 50 "../../src/size.h"extern int SZ_INT ; #line 51 "../../src/size.h"extern int AL_INT ; #line 53 "../../src/size.h"extern int SZ_LONG ; #line 54 "../../src/size.h"extern int AL_LONG ; #line 56 "../../src/size.h"extern int SZ_FLOAT ; #line 57 "../../src/size.h"extern int AL_FLOAT ; #line 59 "../../src/size.h"extern int SZ_DOUBLE ; #line 60 "../../src/size.h"extern int AL_DOUBLE ; #line 62 "../../src/size.h"extern int SZ_STRUCT ; #line 63 "../../src/size.h"extern int AL_STRUCT ; #line 65 "../../src/size.h"extern int SZ_FRAME ; #line 66 "../../src/size.h"extern int AL_FRAME ; #line 68 "../../src/size.h"extern int SZ_WORD ; #line 70 "../../src/size.h"extern int SZ_WPTR ; #line 71 "../../src/size.h"extern int AL_WPTR ; #line 73 "../../src/size.h"extern int SZ_BPTR ; #line 74 "../../src/size.h"extern int AL_BPTR ; #line 77 "../../src/size.h"extern int SZ_TOP ; #line 78 "../../src/size.h"extern int SZ_BOTTOM ; #line 80 "../../src/size.h"extern char * LARGEST_INT ; #line 81 "../../src/size.h"extern int F_SENSITIVE ; #line 82 "../../src/size.h"extern int F_OPTIMIZED ; #line 21 "../../src/expr2.c"int _name_assign ( _auto_this ) register struct name * _auto_this ; #line 22 "../../src/expr2.c"{ #line 22 "../../src/expr2.c"if ( ( _auto_this -> _name_n_assigned_to ++ ) == 0 ) { #line 23 "../../src/expr2.c"switch ( _auto_this -> #line 23 "../../src/expr2.c"_name_n_scope ) #line 24 "../../src/expr2.c"{ #line 24 "../../src/expr2.c"case 108 : if ( _auto_this -> _name_n_used && ( _auto_this -> _name_n_addr_taken == 0 ) ) #line 24 "../../src/expr2.c"#line 26 "../../src/expr2.c"{ #line 26 "../../src/expr2.c"Ptype _auto_t ; #line 27 "../../src/expr2.c"_auto_t = _auto_this -> _expr__O2.__C2_tp ; #line 28 "../../src/expr2.c"ll : switch ( _auto_t -> _node_base ) { #line 29 "../../src/expr2.c"case 97 : _auto_t = ( ( ( struct basetype * #line 29 "../../src/expr2.c") ( _auto_t ) ) ) -> _basetype_b_name -> _expr__O2.__C2_tp ; #line 31 "../../src/expr2.c"goto ll ; #line 32 "../../src/expr2.c"case 110 : break ; #line 34 "../../src/expr2.c"default : if ( curr_loop ) errorFI_PC__E ( ( int ) 'w' , ( char * ) #line 34 "../../src/expr2.c""%n may have been used before set", _auto_this ) ; else #line 38 "../../src/expr2.c"errorFI_PC__E ( ( int ) 'w' , ( char * ) "%n used before set", _auto_this ) ; } } } } } ; #line 45 "../../src/expr2.c"int _expr_lval ( _auto_this , _auto_oper ) register struct expr * _auto_this ; int _auto_oper ; #line 46 "../../src/expr2.c"{ #line 46 "../../src/expr2.c"int _auto__result ; register Pexpr _auto_ee ; register Pname _auto_n ; int _auto_deref ; char * _auto_es ; #line 47 "../../src/expr2.c"_auto_ee = ( struct expr * ) _auto_this ; #line 49 "../../src/expr2.c"_auto_deref = 0 ; #line 52 "../../src/expr2.c"if ( ( _auto_this == 0 ) || ( _auto_this -> _expr__O2.__C2_tp == 0 ) ) errorFI_PC__E ( #line 52 "../../src/expr2.c"( int ) 'i' , ( char * ) "%d->lval(0)", _auto_this ) ; #line 54 "../../src/expr2.c"switch ( _auto_oper ) { #line 54 "../../src/expr2.c"case 112 : case 145 : _auto_es = "address of"; #line 58 "../../src/expr2.c"break ; #line 59 "../../src/expr2.c"case 48 : case 49 : _auto_es = "increment of"; #line 62 "../../src/expr2.c"goto def ; #line 63 "../../src/expr2.c"case 111 : _auto_es = "dereference of"; #line 65 "../../src/expr2.c"break ; #line 66 "../../src/expr2.c"default : _auto_es = "assignment to"; #line 68 "../../src/expr2.c"def : if ( _type_tconst ( ( struct type * ) _auto_this -> _expr__O2.__C2_tp ) ) { #line 69 "../../src/expr2.c"if ( #line 69 "../../src/expr2.c"_auto_oper ) #line 70 "../../src/expr2.c"{ #line 70 "../../src/expr2.c"if ( _auto_this -> _node_base == 85 ) errorFPC__E ( ( char * ) "%s constant%n", _auto_es , #line 70 "../../src/expr2.c"_auto_this ) ; else #line 74 "../../src/expr2.c"errorFPC__E ( ( char * ) "%s constant", _auto_es ) ; } #line 76 "../../src/expr2.c"{ #line 76 "../../src/expr2.c"{ _auto__result = 0 ; #line 76 "../../src/expr2.c"return _auto__result ; } } } } #line 80 "../../src/expr2.c"for ( ;;) { #line 80 "../../src/expr2.c"switch ( _auto_ee -> _node_base ) { #line 82 "../../src/expr2.c"case #line 82 "../../src/expr2.c"146 : #line 84 "../../src/expr2.c"case 109 : if ( _auto_deref == 0 ) { #line 85 "../../src/expr2.c"switch ( _auto_oper ) { #line 86 "../../src/expr2.c"case #line 86 "../../src/expr2.c"112 : #line 88 "../../src/expr2.c"case 145 : case 0 : if ( _auto_ee -> _expr__O5.__C5_fct_name && ( ( ( struct #line 88 "../../src/expr2.c"fct * ) ( _auto_ee -> _expr__O5.__C5_fct_name -> _expr__O2.__C2_tp ) ) ) -> _fct_f_inline ) #line 91 "../../src/expr2.c"{ #line 91 "../../src/expr2.c"{ _auto__result = 1 ; #line 91 "../../src/expr2.c"#line 91 "../../src/expr2.c"return _auto__result ; } } } } #line 94 "../../src/expr2.c"default : if ( _auto_deref == 0 ) { #line 95 "../../src/expr2.c"if ( #line 95 "../../src/expr2.c"_auto_oper ) #line 96 "../../src/expr2.c"errorFPC__E ( ( char * ) "%s %k (not an lvalue)", _auto_es , _auto_ee -> _node_base ) ; #line 97 "../../src/expr2.c"{ #line 97 "../../src/expr2.c"{ _auto__result = 0 ; #line 97 "../../src/expr2.c"return _auto__result ; } } } #line 99 "../../src/expr2.c"{ #line 99 "../../src/expr2.c"{ _auto__result = 1 ; #line 99 "../../src/expr2.c"return _auto__result ; } } #line 100 "../../src/expr2.c"case 86 : case 84 : case 82 : case 83 : if ( _auto_oper ) errorFPC__E ( #line 100 "../../src/expr2.c"( char * ) "%s numeric constant", _auto_es ) ; #line 105 "../../src/expr2.c"{ #line 105 "../../src/expr2.c"{ _auto__result = 0 ; #line 105 "../../src/expr2.c"return _auto__result ; } } #line 106 "../../src/expr2.c"case 81 : if ( _auto_oper ) errorFI_PC__E ( ( int ) 'w' , ( char #line 106 "../../src/expr2.c"* ) "%s string constant", _auto_es ) ; #line 108 "../../src/expr2.c"{ #line 108 "../../src/expr2.c"{ _auto__result = 1 ; #line 108 "../../src/expr2.c"return _auto__result ; } } #line 110 "../../src/expr2.c"case 111 : { #line 111 "../../src/expr2.c"Pexpr _auto_ee1 ; #line 111 "../../src/expr2.c"_auto_ee1 = _auto_ee -> _expr__O3.__C3_e1 ; #line 112 "../../src/expr2.c"if ( _auto_ee1 -> _node_base == 112 ) _auto_ee = _auto_ee1 -> _expr__O4.__C4_e2 ; else #line 114 "../../src/expr2.c"{ #line 114 "../../src/expr2.c"_auto_ee = _auto_ee1 ; #line 116 "../../src/expr2.c"_auto_deref = 1 ; } #line 118 "../../src/expr2.c"break ; } #line 128 "../../src/expr2.c"case 45 : switch ( _auto_ee -> _expr__O3.__C3_e1 -> _node_base ) { #line 130 "../../src/expr2.c"case 85 : switch ( _auto_oper ) #line 130 "../../src/expr2.c"#line 133 "../../src/expr2.c"{ #line 133 "../../src/expr2.c"case 112 : case 145 : { #line 564 "../../src/cfront.h"( ( struct name * ) ( ( ( #line 564 "../../src/cfront.h"struct name * ) ( _auto_ee -> _expr__O3.__C3_e1 ) ) ) ) -> _name_n_addr_taken ++ ; } #line 136 "../../src/expr2.c"case 0 : break ; #line 137 "../../src/expr2.c"case 70 : ( ( ( struct name * ) ( _auto_ee -> _expr__O3.__C3_e1 ) ) ) -> #line 137 "../../src/expr2.c"_name_n_used -- ; #line 138 "../../src/expr2.c"default : _name_assign ( ( struct name * ) ( ( ( struct name * ) ( #line 138 "../../src/expr2.c"_auto_ee -> _expr__O3.__C3_e1 ) ) ) ) ; } #line 140 "../../src/expr2.c"case 45 : { #line 141 "../../src/expr2.c"Pexpr _auto_e ; #line 141 "../../src/expr2.c"_auto_e = _auto_ee -> _expr__O3.__C3_e1 ; #line 142 "../../src/expr2.c"do _auto_e = _auto_e -> _expr__O3.__C3_e1 ; while ( _auto_e -> _node_base == 45 ) ; #line 143 "../../src/expr2.c"if ( _auto_e -> _node_base == 85 ) { #line 143 "../../src/expr2.c"switch ( _auto_oper ) { #line 145 "../../src/expr2.c"case 112 : case 145 : #line 145 "../../src/expr2.c"#line 147 "../../src/expr2.c"{ #line 564 "../../src/cfront.h"( ( struct name * ) ( ( ( struct name * ) ( _auto_e ) #line 564 "../../src/cfront.h") ) ) -> _name_n_addr_taken ++ ; } #line 148 "../../src/expr2.c"case 0 : break ; #line 149 "../../src/expr2.c"case 70 : ( ( ( struct name * ) ( _auto_e ) ) ) -> _name_n_used -- #line 149 "../../src/expr2.c"; #line 150 "../../src/expr2.c"default : _name_assign ( ( struct name * ) ( ( ( struct name * ) ( #line 150 "../../src/expr2.c"_auto_e ) ) ) ) ; } } } } #line 154 "../../src/expr2.c"_auto_n = _auto_ee -> _expr__O5.__C5_mem ; #line 155 "../../src/expr2.c"if ( ( _auto_deref == 0 ) && _type_tconst ( ( struct type * ) _auto_ee -> _expr__O3.__C3_e1 -> #line 155 "../../src/expr2.c"_expr__O2.__C2_tp ) ) #line 155 "../../src/expr2.c"{ #line 155 "../../src/expr2.c"if ( _auto_oper ) errorFPC__E ( ( char * ) "%sM%n of%t", _auto_es , _auto_n , #line 155 "../../src/expr2.c"_auto_ee -> _expr__O3.__C3_e1 -> _expr__O2.__C2_tp ) ; #line 157 "../../src/expr2.c"{ #line 157 "../../src/expr2.c"{ _auto__result = 0 ; #line 157 "../../src/expr2.c"return _auto__result ; } } } #line 159 "../../src/expr2.c"goto xx ; #line 161 "../../src/expr2.c"case 44 : _auto_n = _auto_ee -> _expr__O5.__C5_mem ; #line 163 "../../src/expr2.c"if ( _auto_deref == 0 ) { #line 163 "../../src/expr2.c"Ptype _auto_p ; #line 164 "../../src/expr2.c"_auto_p = _auto_ee -> _expr__O3.__C3_e1 -> _expr__O2.__C2_tp ; #line 165 "../../src/expr2.c"zxc : switch ( _auto_p -> _node_base ) { #line 166 "../../src/expr2.c"case 97 : _auto_p = ( ( ( struct basetype * #line 166 "../../src/expr2.c") ( _auto_p ) ) ) -> _basetype_b_name -> _expr__O2.__C2_tp ; #line 167 "../../src/expr2.c"goto zxc ; #line 168 "../../src/expr2.c"case 125 : break ; #line 169 "../../src/expr2.c"default : errorFI_PC__E ( ( int ) 'i' , ( char * ) "%t->%n", _auto_p , _auto_n ) #line 169 "../../src/expr2.c"; } #line 171 "../../src/expr2.c"if ( _type_tconst ( ( struct type * ) ( ( ( struct ptr * ) #line 171 "../../src/expr2.c"( _auto_p ) ) ) -> _ptr_typ ) ) #line 171 "../../src/expr2.c"{ #line 171 "../../src/expr2.c"if ( _auto_oper ) errorFPC__E ( ( char #line 171 "../../src/expr2.c"* ) "%sM%n of%t", _auto_es , _auto_n , ( ( ( struct ptr * ) ( _auto_p ) ) #line 171 "../../src/expr2.c") -> _ptr_typ ) ; #line 173 "../../src/expr2.c"{ #line 173 "../../src/expr2.c"{ _auto__result = 0 ; #line 173 "../../src/expr2.c"return _auto__result ; } } } } #line 176 "../../src/expr2.c"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -