1  /* { dg-do compile } */
       2  /* { dg-options "-std=c99" } */
       3  
       4  #include <arm_sve.h>
       5  
       6  struct s { signed char x; };
       7  
       8  svuint8_t
       9  f1 (svbool_t pg, signed char *s8_ptr, svint8_t s8)
      10  {
      11    svld1_vnum (pg); /* { dg-error {too few arguments to function 'svld1_vnum'} } */
      12    svld1_vnum (pg, s8_ptr); /* { dg-error {too few arguments to function 'svld1_vnum'} } */
      13    svld1_vnum (pg, s8_ptr, 0, 0); /* { dg-error {too many arguments to function 'svld1_vnum'} } */
      14    svld1_vnum (0, s8_ptr, 0); /* { dg-error {passing 'int' to argument 1 of 'svld1_vnum', which expects 'svbool_t'} } */
      15    svld1_vnum (pg, 0, 0); /* { dg-error {passing 'int' to argument 2 of 'svld1_vnum', which expects a pointer type} } */
      16    svld1_vnum (pg, s8_ptr, s8_ptr); /* { dg-warning "passing argument 3 of 'svld1_vnum_s8' makes integer from pointer without a cast" } */
      17    svld1_vnum (pg, s8_ptr, s8); /* { dg-error {passing 'svint8_t' to argument 3 of 'svld1_vnum', which expects 'int64_t'} } */
      18  }