This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/37290] New: segfault
- From: "regehr at cs dot utah dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Aug 2008 19:05:13 -0000
- Subject: [Bug c/37290] New: segfault
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Seen on Ubuntu Hardy.
regehr@john-home:~/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.
regehr@john-home:~/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)
regehr@john-home:~/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