From: Jim Wilson Date: Tue, 5 May 1992 17:49:09 +0000 (-0700) Subject: *** empty log message *** X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f543676f57d8e673581b79409b706c377064ff59;p=gcc.git *** empty log message *** From-SVN: r906 --- diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 3e0de048d81..38bbd22cee1 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -1519,7 +1519,7 @@ dbxout_symbol (decl, local) { current_sym_addr = XEXP (DECL_RTL (decl), 0); - letter = TREE_PERMANENT (decl) ? 'S' : 'V'; + letter = decl_function_context (decl) ? 'V' : 'S'; if (!DECL_INITIAL (decl)) current_sym_code = N_LCSYM; diff --git a/gcc/integrate.c b/gcc/integrate.c index 0faf0793fbd..cde43fa5c75 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1875,7 +1875,26 @@ copy_rtx_and_substitute (orig, map) case PC: case CC0: case CONST_INT: + return orig; + case SYMBOL_REF: + /* Symbols which represent the address of a label stored in the constant + pool must be modified to point to a constant pool entry for the + remapped label. Otherwise, symbols are returned unchanged. */ + if (CONSTANT_POOL_ADDRESS_P (orig)) + { + rtx constant = get_pool_constant (orig); + if (GET_CODE (constant) == LABEL_REF) + { + copy = rtx_alloc (LABEL_REF); + PUT_MODE (copy, mode); + XEXP (copy, 0) + = map->label_map[CODE_LABEL_NUMBER (XEXP (constant, 0))]; + LABEL_OUTSIDE_LOOP_P (copy) = LABEL_OUTSIDE_LOOP_P (orig); + copy = force_const_mem (Pmode, copy); + return XEXP (copy, 0); + } + } return orig; case CONST_DOUBLE: