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