diff options
author | Ken Raeburn <raeburn@cygnus> | 1993-05-27 19:42:23 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@cygnus> | 1993-05-27 19:42:23 +0000 |
commit | 49864cfa6cfbd8c2a337765346dfda2597e6b8ac (patch) | |
tree | 0e576d4f0bcc3b3cb145d989a96b8185eb3b3aa5 /gas/expr.c | |
parent | 9a7d824a261ba7785702c5a3b5bc6bf3a3b12213 (diff) | |
download | fsf-binutils-gdb-49864cfa6cfbd8c2a337765346dfda2597e6b8ac.zip fsf-binutils-gdb-49864cfa6cfbd8c2a337765346dfda2597e6b8ac.tar.gz fsf-binutils-gdb-49864cfa6cfbd8c2a337765346dfda2597e6b8ac.tar.bz2 |
read.c (s_align_bytes): Properly record alignment.
expr.c (__): Undefine before defining.
as.c (got_sig): Don't return anything; return type might be void.
Whitespace/comment cleanup in frags.c.
Some patches for `-pedantic' or `-fno-common' compilation.
(Some of these changes are from Michael Meissner; see change log.)
Diffstat (limited to 'gas/expr.c')
-rw-r--r-- | gas/expr.c | 52 |
1 files changed, 34 insertions, 18 deletions
@@ -506,9 +506,12 @@ operand (expressionP) expressionP->X_seg = absolute_section; break; + case '+': + operand (expressionP); + break; + case '~': case '-': - case '+': { /* unary operator: hope for SEG_ABSOLUTE */ segT opseg = operand (expressionP); @@ -677,8 +680,10 @@ clean_up_expression (expressionP) if (expressionP->X_subtract_symbol == expressionP->X_add_symbol || (expressionP->X_subtract_symbol && expressionP->X_add_symbol - && expressionP->X_subtract_symbol->sy_frag == expressionP->X_add_symbol->sy_frag - && S_GET_VALUE (expressionP->X_subtract_symbol) == S_GET_VALUE (expressionP->X_add_symbol))) + && (expressionP->X_subtract_symbol->sy_frag + == expressionP->X_add_symbol->sy_frag) + && (S_GET_VALUE (expressionP->X_subtract_symbol) + == S_GET_VALUE (expressionP->X_add_symbol)))) { expressionP->X_subtract_symbol = NULL; expressionP->X_add_symbol = NULL; @@ -721,16 +726,20 @@ expr_part (symbol_1_PP, symbol_2_P) { segT return_value; #ifndef MANY_SEGMENTS - assert ((*symbol_1_PP) == NULL \ - || (S_GET_SEGMENT (*symbol_1_PP) == text_section) \ - || (S_GET_SEGMENT (*symbol_1_PP) == data_section) \ - || (S_GET_SEGMENT (*symbol_1_PP) == bss_section) \ - || (!S_IS_DEFINED (*symbol_1_PP))); - assert (symbol_2_P == NULL \ - || (S_GET_SEGMENT (symbol_2_P) == text_section) \ - || (S_GET_SEGMENT (symbol_2_P) == data_section) \ - || (S_GET_SEGMENT (symbol_2_P) == bss_section) \ +#ifndef OBJ_ECOFF + int test = ((*symbol_1_PP) == NULL + || (S_GET_SEGMENT (*symbol_1_PP) == text_section) + || (S_GET_SEGMENT (*symbol_1_PP) == data_section) + || (S_GET_SEGMENT (*symbol_1_PP) == bss_section) + || (!S_IS_DEFINED (*symbol_1_PP))); + assert (test); + test = (symbol_2_P == NULL + || (S_GET_SEGMENT (symbol_2_P) == text_section) + || (S_GET_SEGMENT (symbol_2_P) == data_section) + || (S_GET_SEGMENT (symbol_2_P) == bss_section) || (!S_IS_DEFINED (symbol_2_P))); + assert (test); +#endif #endif if (*symbol_1_PP) { @@ -785,12 +794,15 @@ expr_part (symbol_1_PP, symbol_2_P) } } #ifndef MANY_SEGMENTS - assert (return_value == absolute_section \ - || return_value == text_section \ - || return_value == data_section \ - || return_value == bss_section \ - || return_value == undefined_section \ +#ifndef OBJ_ECOFF + test = (return_value == absolute_section + || return_value == text_section + || return_value == data_section + || return_value == bss_section + || return_value == undefined_section || return_value == pass1_section); + assert (test); +#endif #endif know ((*symbol_1_PP) == NULL || (S_GET_SEGMENT (*symbol_1_PP) == return_value)); @@ -836,6 +848,7 @@ typedef enum operatorT; +#undef __ #define __ O_illegal static const operatorT op_encoding[256] = @@ -975,11 +988,12 @@ expr (rank, resultP) segT seg1; segT seg2; #ifndef MANY_SEGMENTS - +#ifndef OBJ_ECOFF know (resultP->X_seg == data_section || resultP->X_seg == text_section || resultP->X_seg == bss_section || resultP->X_seg == undefined_section || resultP->X_seg == diff_section || resultP->X_seg == absolute_section || resultP->X_seg == pass1_section || resultP->X_seg == reg_section); know (right.X_seg == data_section || right.X_seg == text_section || right.X_seg == bss_section || right.X_seg == undefined_section || right.X_seg == diff_section || right.X_seg == absolute_section || right.X_seg == pass1_section); #endif +#endif clean_up_expression (&right); clean_up_expression (resultP); @@ -1000,9 +1014,11 @@ expr (rank, resultP) know (seg2 != absolute_section); know (resultP->X_subtract_symbol); #ifndef MANY_SEGMENTS +#ifndef OBJ_ECOFF know (seg1 == text_section || seg1 == data_section || seg1 == bss_section); know (seg2 == text_section || seg2 == data_section || seg2 == bss_section); #endif +#endif know (resultP->X_add_symbol); know (resultP->X_subtract_symbol); as_bad ("Expression too complex: forgetting %s - %s", |