Re: Strings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 25 March 2011 05:10, Ian Lance Taylor <iant@xxxxxxxxxx> wrote:
> Philip Herron <redbrain@xxxxxxxxxxx> writes:
>
>> Program received signal SIGSEGV, Segmentation fault.
>> useless_type_conversion_p (outer_type=0xb7ac1f60,
>> inner_type=0xafafafaf) at ../../gcc-dev/gcc/tree-ssa.c:1222
>> 1222    if (POINTER_TYPE_P (inner_type)
>
> The inner_type parameter is garbage.  The value 0xafafafaf indicates
> that it was garbage collected.  Somewhere you are holding on to a
> pointer which the garbage collector is not seeing.
>
> Ian
>

Ah i have it working now i had some stupid messy VEC being used as
tree's because i was up far too late. I was able to just reuse the
c-decl.c example: but i have to use:


  TREE_STATIC (address) = 1;
  TREE_READONLY (address) = 1;
  DECL_ARTIFICIAL (address) = 1;

on the tmp_var or i get some error when it comes to varasm.c

So basically i had to:

 tree type = build_array_type (char_type_node,
				build_index_type (size_int (
							    IDENTIFIER_LENGTH (DECL_NAME(decl))
							    )));
  type = build_qualified_type (type, TYPE_QUAL_CONST);
  gpy_preserve_from_gc (type);

  tree str = build_string (IDENTIFIER_LENGTH (DECL_NAME(decl)), c_ident);
  TREE_TYPE (str) = type;

Then MODIFY_EXPR with a tmp_var assigned to str; and i can use that
tmp_var to access the string.

Thanks Ian!



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux