http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53300

--- Comment #17 from David Edelsohn <dje at gcc dot gnu.org> 2012-05-11 
15:44:44 UTC ---
A minimal testcase:

enum lc_reason
{
  LC_ENTER = 0,
  LC_LEAVE,
  LC_RENAME,
  LC_RENAME_VERBATIM,
  LC_ENTER_MACRO

};

const char *
foo (enum lc_reason reason)
{
  const char *lc_reasons_v[LC_ENTER_MACRO + 1]
      = { "LC_ENTER", "LC_LEAVE", "LC_RENAME", "LC_RENAME_VERBATIM",
   "LC_ENTER_MACRO" };

  return lc_reasons_v[reason];
}


Without your TREE_ASM_WRITTEN kludge, the string values of the array are not
emitted in the assembly. The array referencing the strings is emitted, but the
values themselves are not.

Reply via email to