This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

string constant of the constant pool entry..


Hi All,

I'm trying to fetch the string constant from the constant pool entry
for the symbol_ref rtx like

c sample

int i;
int main()
{
  printf("%d",i);
}

rtl is

(gdb) p debug_rtx(val)
(symbol_ref/f:SI ("*.LC0") [flags 0x2] <var_decl 0xb7c293f4 *.LC0>)

corresponding asm

       .section        .rodata,code
        .align  2
.LC0:
        .ascii  "%d\000"


sample code to fetch the string "%d"

tree sym = SYMBOL_REF_DECL(rtx);

if (!(sym && (TREE_CODE(sym)==STRING_CST) && STRING_CST_CHECK(sym)))
sym = 0;

const char *string = TREE_STRING_POINTER(sym);

the above sample code fails with returning null in string.

Whats wrong with the above code  ? or How do we fetch the
string_constant from the given symbol_ref ?

Any hints will be appreciated ,thank you

FYI,the  gcc code base is 4.8.3.

~Umesh


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]