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

Bug#706363: gcc-4.7: segfault with -O1 -floop-block



Package: gcc-4.7
Version: 4.7.2-22
Severity: normal

I get the following ICE:

  vauxhall no % gcc -O1 -floop-block -c  -std=c99 test.i
  test.i: In function ‘drew_loader_free’:
  test.i:67:3: warning: implicit declaration of function ‘free’ [-Wimplicit-function-declaration]
  test.i:67:3: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
  test.i:71:2: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
  test.i:57:5: internal compiler error: Segmentation fault
  Please submit a full bug report,
  with preprocessed source if appropriate.
  See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions.
  Preprocessed source stored into /tmp/ccCOLUrL.out file, please attach this to your bugreport.

The preprocessed source is attached.

-- System Information:
Debian Release: 7.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.8-trunk-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/mksh-static

Versions of packages gcc-4.7 depends on:
ii  binutils        2.22-8
ii  cpp-4.7         4.7.2-22
ii  gcc-4.7-base    4.7.2-22
ii  libc6           2.17-0experimental2
ii  libcloog-ppl1   0.16.1-1
ii  libgcc-4.7-dev  4.7.2-22
ii  libgmp10        2:5.0.5+dfsg-2
ii  libgmpxx4ldbl   2:5.0.5+dfsg-2
ii  libmpc2         0.9-4
ii  libmpfr4        3.1.1-1
ii  libppl-c4       1:0.11.2-9
ii  libppl12        1:1.0-4
ii  zlib1g          1:1.2.7.dfsg-13

Versions of packages gcc-4.7 recommends:
ii  libc6-dev  2.17-0experimental2

Versions of packages gcc-4.7 suggests:
pn  binutils-gold        <none>
pn  gcc-4.7-doc          <none>
pn  gcc-4.7-locales      <none>
pn  gcc-4.7-multilib     <none>
pn  libgcc1-dbg          <none>
pn  libgomp1-dbg         <none>
pn  libitm1-dbg          <none>
pn  libmudflap0-4.7-dev  <none>
pn  libmudflap0-dbg      <none>
pn  libquadmath0-dbg     <none>

-- no debconf information

-- 
brian m. carlson / brian with sandals: Houston, Texas, US
+1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only
OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
typedef struct {
 int version;
 const char *subject;
 const char *predicate;
 int type;
 const char *object;
} drew_metadata_t;

struct drew_loader_s;
typedef struct drew_loader_s drew_loader_t;

typedef int (*plugin_api_t)(void *, int, int, void *);

typedef void *functbl_t;
typedef void *handle_t;


typedef struct {
 char *name;
 char *path;
 plugin_api_t api;
 handle_t handle;
 int nplugins;
} library_t;


typedef struct {
 char *name;
 library_t *lib;
 functbl_t functbl;
 int functblsize;
 int id;
 int type;
 int flags;
 int nmetadata;
 drew_metadata_t *metadata;
} plugin_t;

struct drew_loader_s {
 int version;
 int flags;
 int nlibs;
 library_t *lib;
 int nplugins;
 plugin_t *plugin;
};

static void close_library(handle_t handle)
{
}

static plugin_api_t get_api(handle_t handle)
{
 return 0;
}

int drew_loader_free(drew_loader_t **ldrp)
{
 drew_loader_t *ldr;

 if (!ldrp)
  return -0x10006;

 ldr = *ldrp;

 for (int i = 0; i < ldr->nlibs; i++) {
  free(ldr->lib[i].name);
  free(ldr->lib[i].path);
  close_library(ldr->lib[i].handle);
 }
 free(ldr->lib);

 for (int i = 0; i < ldr->nplugins; i++) {
  if (!(ldr->plugin[i].flags & 1))
   continue;
  free(ldr->plugin[i].name);
  free(ldr->plugin[i].functbl);
  free(ldr->plugin[i].metadata);
 }
 free(ldr->plugin);
 free(ldr);

 *ldrp = ((void *)0);
 return 0;
}

Attachment: signature.asc
Description: Digital signature


Reply to: