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

           Summary: segfault
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: reg...@cs.utah.edu
                CC: cheny...@cs.utah.edu


Searching on "Segmentation fault" in the bugzilla returns hundreds of matches
so I can't really verify this is new, sorry!  But at least it's a small
testcase :).  

Valgrind talks about a read past the bound of a malloc'd block and also about a
null ptr dereference -- hard to tell what is the real problem.

[reg...@gamow tmp435]$ current-gcc -c small.c -O2

small.c: In function 'func_115':
small.c:30:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

[reg...@gamow tmp435]$ current-gcc -v

Using built-in specs.
COLLECT_GCC=current-gcc
COLLECT_LTO_WRAPPER=/uusoc/exports/scratch/regehr/z/compiler-install/gcc-r168380-install/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --with-libelf=/usr/local --enable-lto
--prefix=/home/regehr/z/compiler-install/gcc-r168380-install
--program-prefix=r168380- --enable-languages=c,c++
Thread model: posix
gcc version 4.6.0 20101231 (experimental) (GCC) 

[reg...@gamow tmp435]$ cat small.c

typedef signed char int8_t;
typedef int int32_t;
typedef unsigned int uint32_t;
static uint32_t
safe_add_func_uint32_t_u_u (uint32_t ui1, uint32_t ui2)
{
  return ui1 + ui2;
};

int8_t *const
func_112 (int32_t * p_113, int8_t p_114)
{
  func_115 (func_115, 0);
  return 0;
}

int32_t
func_115 (uint32_t p_116, uint32_t p_117, int8_t * p_118)
{
  int32_t l_141;
  int32_t *l_186 = &l_141;
  if (l_141)
    {
    }
  else
    for (l_141 = 0; l_141; l_141 = safe_add_func_uint32_t_u_u (l_141, 1))
      {
      }
  return *l_186;
}

Reply via email to