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