! { dg-do compile }
! { dg-options "-O -fdump-tree-optimized" }
!
! Check that the GNU additions to ISO_C_Binding are accepted
!
use, intrinsic :: iso_c_binding, only: c_int128_t
use, intrinsic :: iso_c_binding, only: c_int_least128_t
use, intrinsic :: iso_c_binding, only: c_int_fast128_t
use, intrinsic :: iso_c_binding, only: c_float128
use, intrinsic :: iso_c_binding, only: c_float128_complex
implicit none
if (c_int128_t         >= 0 .and. c_int128_t         /= 16) call unreachable()
if (c_int_least128_t   >= 0 .and. c_int_least128_t   <  16) call unreachable()
if (c_int_fast128_t    >= 0 .and. c_int_fast128_t    <  16) call unreachable()
if (c_float128         >= 0 .and. c_float128         /= 16) call unreachable()
if (c_float128_complex >= 0 .and. c_float128_complex /= 16) call unreachable()
end

! { dg-final { scan-tree-dump-times "unreachable" 0 "optimized" } }
! { dg-final { cleanup-tree-dump "optimized" } }
