view gcc/testsuite/g++.dg/torture/pr39417.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do run }

#include <vector>

std::vector <int>
sequence(int l, int n)
{
  std::vector <int> ret;
  for(int i=n;i<=100;i++)
    {
      if(i%2==0)
	{
	  if(l%i==i/2)
	    {
	      int init =l/i-i/2+1;
	      if(init>=0)
		{
		  for(int j=0;j<i;j++)
		    {
		      ret.push_back(init);
		      init ++;
		    }
		  break;
		}
	    }
	}
      else
	{
	  if(l%i==0)
	    {
	      int init =l/i-i/2;
	      if(init>=0)
		{
		  for(int j=0;j<i;j++)
		    {
		      ret.push_back(init);
		      init ++;
		    }
		  break;
		}
	    }
	}
    }
  return ret;
}
extern "C" void abort (void);
int main()
{
  std::vector<int> res = sequence(18, 2);
  if (res.size () != 3
      || res[0] != 5
      || res[1] != 6
      || res[2] != 7)
    abort ();
  return 0;
}