OSDN Git Service

2012-01-30 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / 20031201-2.c
1 /* PR optimization/11634 */
2
3 /* The following code used to ICE in verify_local_live_at_start on
4    PA when compiled with -O2.  The cause was that split_all_insns was
5    not updating liveness information when deleting no-op moves that
6    had REG_UNUSED notes.  */
7
8 /* { dg-do compile { target hppa*-*-* } } */
9 /* { dg-options "-O2" } */
10
11 void *f(void *s);
12 void H5T_conv_vlen (unsigned long long nelmts, unsigned char *bg_ptr)
13 {
14   long long seq_len;
15   unsigned long long bg_seq_len = 0;
16   unsigned src_base_size, dst_base_size;
17   void *tmp_buf = 0;
18   unsigned tmp_buf_size = 0;
19   unsigned long long elmtno;
20   for (elmtno = 0; elmtno < nelmts; elmtno++)
21     {
22       unsigned char *tmp = bg_ptr;
23       bg_seq_len = *tmp;
24       if (bg_seq_len > 0
25           && tmp_buf_size <
26           (unsigned) (bg_seq_len *
27                       (src_base_size > dst_base_size
28                        ? src_base_size
29                        : dst_base_size)))
30         {
31           tmp_buf_size =
32             (unsigned) (bg_seq_len *
33                         (src_base_size > dst_base_size
34                          ? src_base_size
35                          : dst_base_size));
36         }
37       if (bg_seq_len < seq_len)
38         f ((unsigned char *) tmp_buf + dst_base_size * bg_seq_len);
39     }
40 }
41