1/* { dg-do run } */ 2 3#include <stdlib.h> 4#include <openacc.h> 5 6int 7main (int argc, char **argv) 8{ 9 int i; 10 int num_devices; 11 int devnum; 12 acc_device_t devtype = acc_device_host; 13 14#if ACC_DEVICE_TYPE_nvidia 15 devtype = acc_device_nvidia; 16#endif 17 18 num_devices = acc_get_num_devices (devtype); 19 if (num_devices == 0) 20 return 0; 21 22 acc_init (devtype); 23 24 for (i = 0; i < num_devices; i++) 25 { 26 acc_set_device_num (i, devtype); 27 devnum = acc_get_device_num (devtype); 28 if (devnum != i) 29 abort (); 30 } 31 32 acc_shutdown (devtype); 33 34 num_devices = acc_get_num_devices (devtype); 35 if (num_devices == 0) 36 abort (); 37 38 for (i = 0; i < num_devices; i++) 39 { 40 acc_set_device_num (i, devtype); 41 devnum = acc_get_device_num (devtype); 42 if (devnum != i) 43 abort (); 44 } 45 46 acc_shutdown (devtype); 47 48 acc_init (devtype); 49 50 acc_set_device_num (0, devtype); 51 52 devnum = acc_get_device_num (devtype); 53 if (devnum != 0) 54 abort (); 55 56 if (num_devices > 1) 57 { 58 acc_set_device_num (1, (acc_device_t) 0); 59 60 devnum = acc_get_device_num (devtype); 61 if (devnum != 1) 62 abort (); 63 } 64 65 acc_shutdown (devtype); 66 67 return 0; 68} 69 70/* { dg-output "" } */ 71