public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* debug/10281: [3.4 regression] ICE in dwarf2out.c compiling glibc
@ 2003-03-31 19:18 janis187
  0 siblings, 0 replies; only message in thread
From: janis187 @ 2003-03-31 19:18 UTC (permalink / raw)
  To: gcc-gnats


>Number:         10281
>Category:       debug
>Synopsis:       [3.4 regression] ICE in dwarf2out.c compiling glibc
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 31 19:16:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Janis Johnson
>Release:        gcc (GCC) 3.4 20030330 (experimental)
>Organization:
>Environment:
i686-pc-linux-gnu, powerpc64-unknown-linux-gnu
>Description:
The mainline C compiler ICEs when building glibc from CVS
sources using -g.  I first noticed this with
powerpc-unknown-linux-gnu, but the shorter test case also
ICEs for i686-pc-linux-gnu.  This does not affect the 3.3
or 3.2 branches.  The test case can probably be minimized
more, but I gave up at 59 lines.

Output of the compiler is:

vfprintf.c: In function `_IO_vfprintf':
vfprintf.c:1919: internal compiler error: in loc_descriptor_from_tree, at dwarf2
out.c:8963
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

A hunt for the patch that introduced the regression is in
progress.
>How-To-Repeat:
Compile the test case with -g.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="ice.c"
Content-Disposition: inline; filename="ice.c"

struct dummy_locale_data
{
  const char *name;
  union dummy_locale_data_value
  {
    const char *string;
    unsigned int word;
  }
  values [];
};

typedef struct dummy_locale_struct
{
  struct dummy_locale_data *__locales[13];
} *dummy_locale_t;

extern int dummy1;
extern void *dummy2;

int
_IO_vfprintf (void *s, const char *format)
{
  int done;
  const unsigned char *f;
  static const int jump_table[4];

  {
    static const int step4_jumps[4];
    char spec;
    int offset;
    void * ptr;
    spec = (*++f);
    offset = ((spec) < ' ' || (spec) > 'z')
	      ? &&do_form_unknown - &&do_form_unknown
	      : step4_jumps[(jump_table[(int) (spec) - ' '])];
    ptr = &&do_form_unknown + offset;
    goto *ptr;

do_form_unknown:
    done++;
  }

  {
    static const int step4_jumps[2] = {
	&&do2_form_unsigned - &&do_form_unknown,
	&&do2_form_unknown - &&do_form_unknown };

do2_form_unsigned:
    {
      char buf[(((unsigned int) (((dummy_locale_t)
		({ dummy2; }))->__locales[0])->values[dummy1].word))];
    }

do2_form_unknown:
    done++;
  }

  return done;
}


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-03-31 19:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-31 19:18 debug/10281: [3.4 regression] ICE in dwarf2out.c compiling glibc janis187

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).