(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
nvptx/
abi-knr-arg.c
       1  /* { dg-do compile } */
       2  /* { dg-additional-options "-Wno-pedantic -Wno-long-long -m64" } */
       3  
       4  /* K+R args.  as for ANSI except float promotes to double.  */
       5  
       6  /* { dg-final { scan-assembler-times ".extern .func dcl_av;" 1 } } */
       7  void dcl_av ();
       8  
       9  /* { dg-final { scan-assembler-times ".extern .func dcl_ac \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
      10  void dcl_ac ();
      11  
      12  /* { dg-final { scan-assembler-times ".extern .func dcl_as \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
      13  void dcl_as ();
      14  
      15  /* { dg-final { scan-assembler-times ".extern .func dcl_ai \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
      16  void dcl_ai ();
      17  
      18  /* { dg-final { scan-assembler-times ".extern .func dcl_all \\(.param.u64 %\[_a-z0-9\]*\\);" 1 } } */
      19  void dcl_all ();
      20  
      21  /* { dg-final { scan-assembler-times ".extern .func dcl_af \\(.param.f64 %\[_a-z0-9\]*\\);" 1 } } */
      22  void dcl_af ();
      23  
      24  /* { dg-final { scan-assembler-times ".extern .func dcl_ad \\(.param.f64 %\[_a-z0-9\]*\\);" 1 } } */
      25  void dcl_ad ();
      26  
      27  /* { dg-final { scan-assembler-times ".extern .func dcl_ap \\(.param.u64 %\[_a-z0-9\]*\\);" 1 } } */
      28  void dcl_ap ();
      29  
      30  void test_1 (void)
      31  {
      32    dcl_av ();
      33    dcl_ac ((char)1);
      34    dcl_as ((short)2);
      35    dcl_ai ((int)3);
      36    dcl_all ((long long)4);
      37    dcl_af ((float)5);
      38    dcl_ad ((double)6);
      39    dcl_ap ((void *)0);
      40  }
      41  
      42  /* { dg-final { scan-assembler-times ".visible .func dfn_av(?:;|\[\r\n\]+\{)" 2 } } */
      43  void dfn_av ()
      44  {
      45  }
      46  
      47  /* { dg-final { scan-assembler-times ".visible .func dfn_ac \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
      48  void dfn_ac (c)
      49    char c;
      50  {
      51  }
      52  
      53  /* { dg-final { scan-assembler-times ".visible .func dfn_as \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
      54  void dfn_as (s)
      55    short s;
      56  {
      57  }
      58  
      59  /* { dg-final { scan-assembler-times ".visible .func dfn_ai \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
      60  void dfn_ai (i)
      61    int i;
      62  {
      63  }
      64  
      65  /* { dg-final { scan-assembler-times ".visible .func dfn_all \\(.param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
      66  void dfn_all (ll)
      67    long long ll;
      68  {
      69  }
      70  
      71  /* { dg-final { scan-assembler-times ".visible .func dfn_af \\(.param.f64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
      72  void dfn_af (f)
      73    float f;
      74  {
      75  }
      76  
      77  /* { dg-final { scan-assembler-times ".visible .func dfn_ad \\(.param.f64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
      78  void dfn_ad (d)
      79    double d;
      80  {
      81  }
      82  
      83  /* { dg-final { scan-assembler-times ".visible .func dfn_ap \\(.param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
      84  void dfn_ap (p)
      85    void *p;
      86  {
      87  }
      88  
      89  /*  But complex float is passed as two floats.  (K&R doesn't have
      90      complex, so why obey k&r for the components of such an object?)  */
      91  
      92  /* { dg-final { scan-assembler-times ".visible .func dfn_acf \\(.param.f32 %\[_a-z0-9\]*, .param.f32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
      93  void dfn_acf (_Complex float f)
      94  {
      95  }