1! { dg-do compile }
2! { dg-options "-O -fdump-tree-optimized" }
3!
4! Check that the GNU additions to ISO_C_Binding are accepted
5!
6use, intrinsic :: iso_c_binding, only: c_int128_t
7use, intrinsic :: iso_c_binding, only: c_int_least128_t
8use, intrinsic :: iso_c_binding, only: c_int_fast128_t
9use, intrinsic :: iso_c_binding, only: c_float128
10use, intrinsic :: iso_c_binding, only: c_float128_complex
11implicit none
12if (c_int128_t         >= 0 .and. c_int128_t         /= 16) call unreachable()
13if (c_int_least128_t   >= 0 .and. c_int_least128_t   <  16) call unreachable()
14if (c_int_fast128_t    >= 0 .and. c_int_fast128_t    <  16) call unreachable()
15if (c_float128         >= 0 .and. c_float128         /= 16) call unreachable()
16if (c_float128_complex >= 0 .and. c_float128_complex /= 16) call unreachable()
17end
18
19! { dg-final { scan-tree-dump-times "unreachable" 0 "optimized" } }
20! { dg-final { cleanup-tree-dump "optimized" } }
21