1  /* { dg-additional-options "-Wno-analyzer-too-complex" } */
       2  
       3  int foo ()
       4  {
       5    static volatile int v = 42;
       6    int __result_foo;
       7  
       8    __result_foo = (int) v;
       9    return __result_foo;
      10  }
      11  
      12  void test (int * restrict n, int * restrict flag)
      13  {
      14    int i;
      15    int j;
      16    int k;
      17    double t;
      18    int tt;
      19    double v;
      20  
      21    if (*flag)
      22      {
      23        t = 4.2e+1;
      24        tt = foo ();
      25      }
      26    L_1: ;
      27    v = 0.0;
      28    {
      29      int D_3353;
      30  
      31      D_3353 = *n;
      32      i = 1;
      33      if (i <= D_3353)
      34        {
      35          while (1)
      36            {
      37              {
      38                int D_3369;
      39  
      40                v = 0.0;
      41                if (*flag)
      42                  {
      43                    if (tt == i)
      44                      {
      45                        {
      46                          double M_0;
      47  
      48                          M_0 = v;
      49                          if (t > M_0 || (int) (M_0 != M_0))
      50                            {
      51                              M_0 = t;
      52                            }
      53                          v = M_0;
      54                        }
      55                      }
      56                    L_5:;
      57                  }
      58                L_4:;
      59                {
      60                  int D_3359;
      61  
      62                  D_3359 = *n;
      63                  j = 1;
      64                  if (j <= D_3359)
      65                    {
      66                      while (1)
      67                        {
      68                          {
      69                            int D_3368;
      70  
      71                            {
      72                              int D_3362;
      73  
      74                              D_3362 = *n;
      75                              k = 1;
      76                              if (k <= D_3362)
      77                                {
      78                                  while (1)
      79                                    {
      80                                      {
      81                                        int D_3367;
      82  
      83                                        {
      84                                          double D_3366;
      85                                          double M_1;
      86  
      87                                          M_1 = v;
      88                                          D_3366 = (double) __builtin_sinf ((float) (j * k));
      89                                          if (D_3366 > M_1 || (int) (M_1 != M_1))
      90                                            {
      91                                              M_1 = D_3366;
      92                                            }
      93                                          v = M_1;
      94                                        }
      95                                        L_8:;
      96                                        D_3367 = k == D_3362;
      97                                        k = k + 1;
      98                                        if (D_3367) goto L_9;
      99                                      }
     100                                    }
     101                                }
     102                              L_9:;
     103                            }
     104                            L_6:;
     105                            D_3368 = j == D_3359;
     106                            j = j + 1;
     107                            if (D_3368) goto L_7;
     108                          }
     109                        }
     110                    }
     111                  L_7:;
     112                }
     113                L_2:;
     114                D_3369 = i == D_3353;
     115                i = i + 1;
     116                if (D_3369) goto L_3;
     117              }
     118            }
     119        }
     120      L_3:;
     121    }
     122  }
     123  
     124  
     125  int main ()
     126  {
     127    int flag;
     128    int n;
     129  
     130    n = 4;
     131    flag = 0;
     132    test (&n, &flag);
     133    return 0;
     134  }