diff gcc/testsuite/gfortran.dg/boz_4.f90 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 1830386684a0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gfortran.dg/boz_4.f90	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,29 @@
+! { dg-do compile }
+! Test that the conversion of a BOZ constant that is too large for the
+! integer variable is caught by the compiler.
+program boz
+
+   implicit none
+
+   integer(1), parameter :: &
+   &  b1 = b'0101010110101010'  ! { dg-error "overflow converting" }
+   integer(2), parameter :: &
+   &  b2 = b'01110000111100001111000011110000'  ! { dg-error "overflow converting" }
+   integer(4), parameter :: &
+   &  b4 = b'0111000011110000111100001111000011110000111100001111000011110000'  ! { dg-error "overflow converting" }
+
+   integer(1), parameter :: &
+   &  o1 = o'1234567076543210'  ! { dg-error "overflow converting" }
+   integer(2), parameter :: &
+   &  o2 = o'1234567076543210'  ! { dg-error "overflow converting" }
+   integer(4), parameter :: &
+   &  o4 = o'1234567076543210'  ! { dg-error "overflow converting" }
+
+   integer(1), parameter :: &
+   &  z1 = z'deadbeef'  ! { dg-error "overflow converting" }
+   integer(2), parameter :: &
+   &  z2 = z'deadbeef'  ! { dg-error "overflow converting" }
+   integer(4), parameter :: &
+   &  z4 = z'deadbeeffeed'  ! { dg-error "overflow converting" }
+
+end program boz