summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/fmt_int_sign.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/fmt_int_sign.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/fmt_int_sign.f9016
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/fmt_int_sign.f90 b/gcc/testsuite/gfortran.dg/fmt_int_sign.f90
new file mode 100644
index 000000000..2257fd829
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/fmt_int_sign.f90
@@ -0,0 +1,16 @@
+! { dg-do run }
+! { dg-options -fno-range-check }
+! PR38504 double minus sign when printing integer
+! Test case derived from example by Jos de Kloe
+program IntAdtest
+
+ integer, parameter :: i8_ = Selected_Int_Kind(18) ! = integer*8
+ character(len=22) :: str_value
+ integer(i8_) :: value
+ character(len=*), parameter :: format_IntAd = "(i22)"
+
+ value = -9223372036854775807_i8_ -1
+ write(str_value, format_IntAd) value
+ if (str_value.ne." -9223372036854775808") call abort
+
+end program IntAdtest