Seen on Ubuntu Hardy.

[EMAIL PROTECTED]:~/volatile/tmp14$ current-gcc -O3 small.c
small.c: In function ‘func_93’:
small.c:49: warning: large integer implicitly truncated to unsigned type
current-gcc: Internal error: Segmentation fault (program cc1)
Please submit a full bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

[EMAIL PROTECTED]:~/volatile/tmp14$ current-gcc -v

Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../configure --program-prefix=current-
--enable-languages=c,c++ --prefix=/home/regehr : (reconfigured) ../configure
--program-prefix=current- --enable-languages=c,c++ --prefix=/home/regehr :
(reconfigured) ../configure --program-prefix=current- --enable-languages=c,c++
--prefix=/home/regehr : (reconfigured) ../configure --program-prefix=current-
--enable-languages=c,c++ --prefix=/home/regehr : (reconfigured) ../configure
--program-prefix=current- --prefix=/home/regehr --enable-languages=c,c++
--no-create --no-recursion
Thread model: posix
gcc version 4.4.0 20080830 (experimental) (GCC) 

[EMAIL PROTECTED]:~/volatile/tmp14$ cat small.c

typedef int int32_t;
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;
static inline unsigned int
lshift_u_u (unsigned int left, unsigned int right)
{
  if ((right >= sizeof (unsigned int) * 8) || (left > (4294967295U >> right)))
    return left;
  return left << right;
}
static inline int
rshift_s_u (int left, unsigned int right)
{
  if ((left < 0) || (right >= sizeof (int) * 8))
    return left;
  return left >> right;
}

uint32_t g_57;
uint32_t g_92;
uint32_t g_196;
int32_t func_81 (uint32_t p_82);
int32_t func_93 (uint8_t p_94, uint32_t p_96, uint8_t p_97);
uint32_t
func_70 (uint32_t p_71)
{
  uint32_t l_73;
  for (1; 1; --l_73)
    {
      uint32_t l_79;
      if (((g_57 <= 1) ^ p_71
           && l_79 | p_71) - (lshift_u_u (p_71,
                                          (rshift_s_u
                                           ((func_81 (1) != 1), g_196)))))
        if (g_92)
          return 1;
      func_93 (p_71, 1, 1);
    }
}
int32_t
func_81 (uint32_t p_82)
{
  return 0;
}

int32_t
func_93 (uint8_t p_94, uint32_t p_96, uint8_t p_97)
{
  uint32_t l_110 = 0x9E5B73647B8CEE11LL;
  for (1; l_110; l_110--)
    {
    }
}


-- 
           Summary: segfault
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: regehr at cs dot utah dot edu
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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

Reply via email to