Index: gfortran.dg/read_infnan_1.f90
===================================================================
--- gfortran.dg/read_infnan_1.f90	(revision 169374)
+++ gfortran.dg/read_infnan_1.f90	(working copy)
@@ -22,9 +22,9 @@ read(10,'(7f10.3)') x4
 rewind(10)
 read(10,'(7f10.3)') x8
 write (output, '("x4 =",7G6.0)') x4
-if (output.ne."x4 =  +Inf   NaN  +Inf   NaN  -Inf   NaN  +Inf") call abort
+if (output.ne."x4 =   Inf   NaN   Inf   NaN  -Inf   NaN   Inf") call abort
 write (output, '("x8 =",7G6.0)') x8
-if (output.ne."x8 =  +Inf   NaN  +Inf   NaN  -Inf   NaN  +Inf") call abort
+if (output.ne."x8 =   Inf   NaN   Inf   NaN  -Inf   NaN   Inf") call abort
 !print '("x4 =",7G6.0)', x4
 !print '("x8 =",7G6.0)', x8
 end program pr43298
Index: gfortran.dg/module_nan.f90
===================================================================
--- gfortran.dg/module_nan.f90	(revision 169374)
+++ gfortran.dg/module_nan.f90	(working copy)
@@ -19,7 +19,7 @@ program a
   if (log(abs(inf))  < huge(inf)) call abort()
   if (log(abs(minf)) < huge(inf)) call abort()
   if (.not. isnan(nan)) call abort()
-  write(str,*) inf
+  write(str,"(sp,f10.2)") inf
   if (adjustl(str) /= "+Infinity") call abort()
   write(str,*) minf
   if (adjustl(str) /= "-Infinity") call abort()
Index: gfortran.dg/char4_iunit_1.f03
===================================================================
--- gfortran.dg/char4_iunit_1.f03	(revision 169374)
+++ gfortran.dg/char4_iunit_1.f03	(working copy)
@@ -26,9 +26,9 @@ program char4_iunit_1
   write(string, *) 1.2345e-06, 4.2846e+10_8
   if (string .ne. 4_"  1.23450002E-06   42846000000.000000     ") call abort
   write(string, *) nan, inf
-  if (string .ne. 4_"             NaN       +Infinity           ") call abort
+  if (string .ne. 4_"             NaN        Infinity          ") call abort
   write(string, '(10x,f3.1,3x,f9.1)') nan, inf
-  if (string .ne. 4_"          NaN   +Infinity                 ") call abort
+  if (string .ne. 4_"          NaN    Infinity                 ") call abort
   write(string, *) (1.2, 3.4 )
   if (string .ne. 4_" (  1.2000000    ,  3.4000001    )        ") call abort
 end program char4_iunit_1
Index: gfortran.dg/large_real_kind_1.f90
===================================================================
--- gfortran.dg/large_real_kind_1.f90	(revision 169374)
+++ gfortran.dg/large_real_kind_1.f90	(working copy)
@@ -56,7 +56,7 @@ program test
   call testoutput (-7.51e-100_k,-7.51e-100_8,15,'(F15.10)')
 
   x = huge(x)
-  call outputstring (2*x,'(F20.15)','           +Infinity')
+  call outputstring (2*x,'(F20.15)','            Infinity')
   call outputstring (-2*x,'(F20.15)','           -Infinity')
 
   write (c1,'(G20.10E5)') x
Index: gfortran.dg/nan_7.f90
===================================================================
--- gfortran.dg/nan_7.f90	(revision 0)
+++ gfortran.dg/nan_7.f90	(revision 0)
@@ -0,0 +1,14 @@
+! { dg-do run }
+! PR47293 NAN not correctly read
+character(len=200) :: str
+real(16) :: r, x, y, z
+integer(16) :: k1, k2
+x = 0.0
+y = 0.0
+r = 1.0
+str = 'NAN' ; read(str,*) r
+z = x/y
+k1 = transfer(z,k1)
+k2 = transfer(r,k2)
+if (k1.ne.k2) call abort
+end
Index: gfortran.dg/real_const_3.f90
===================================================================
--- gfortran.dg/real_const_3.f90	(revision 169374)
+++ gfortran.dg/real_const_3.f90	(working copy)
@@ -16,7 +16,7 @@ program main
   b = 1/exp(1000.0)
 
   write(str,*) a
-  if (trim(adjustl(str)) .ne. '+Infinity') call abort
+  if (trim(adjustl(str)) .ne. 'Infinity') call abort
 
   if (b .ne. 0.) call abort
 
@@ -36,7 +36,7 @@ program main
   if (trim(adjustl(str)) .ne. '-Infinity') call abort
 
   write(str,*) 3.0/0.
-  if (trim(adjustl(str)) .ne. '+Infinity') call abort
+  if (trim(adjustl(str)) .ne. 'Infinity') call abort
 
   write(str,*)  nan
   if (trim(adjustl(str)) .ne. 'NaN') call abort
@@ -48,7 +48,7 @@ program main
   if (trim(adjustl(str)) .ne. '(            NaN,            NaN)') call abort
 
   write(str,*) z3
-  if (trim(adjustl(str)) .ne. '(      +Infinity,      -Infinity)') call abort
+  if (trim(adjustl(str)) .ne. '(       Infinity,      -Infinity)') call abort
 
   write(str,*) z4
   if (trim(adjustl(str)) .ne. '(  0.0000000    , -0.0000000    )') call abort
Index: gfortran.fortran-torture/execute/nan_inf_fmt.f90
===================================================================
--- gfortran.fortran-torture/execute/nan_inf_fmt.f90	(revision 169374)
+++ gfortran.fortran-torture/execute/nan_inf_fmt.f90	(working copy)
@@ -1,4 +1,5 @@
 !pr 12839- F2003 formatting of Inf /Nan 
+! Modified for PR47434
        implicit none
        character*40 l
        character*12 fmt
@@ -15,11 +16,11 @@
 ! check a field width = 0
        fmt = '(F0.0)'
        write(l,fmt=fmt)pos_inf
-       if (l.ne.'+Inf') call abort
+       if (l.ne.'Inf') call abort
        write(l,fmt=fmt)neg_inf
        if (l.ne.'-Inf') call abort
        write(l,fmt=fmt)nan
-       if (l.ne.' NaN') call abort
+       if (l.ne.'NaN') call abort
 
 ! check a field width < 3
        fmt = '(F2.0)'
@@ -42,7 +43,7 @@
 ! check a field width > 3
        fmt = '(F4.0)'
        write(l,fmt=fmt)pos_inf
-       if (l.ne.'+Inf') call abort
+       if (l.ne.' Inf') call abort
        write(l,fmt=fmt)neg_inf
        if (l.ne.'-Inf') call abort
        write(l,fmt=fmt)nan
@@ -51,7 +52,7 @@
 ! check a field width = 7
        fmt = '(F7.0)'
        write(l,fmt=fmt)pos_inf
-       if (l.ne.'   +Inf') call abort
+       if (l.ne.'    Inf') call abort
        write(l,fmt=fmt)neg_inf
        if (l.ne.'   -Inf') call abort
        write(l,fmt=fmt)nan
@@ -60,7 +61,7 @@
 ! check a field width = 8
        fmt = '(F8.0)'
        write(l,fmt=fmt)pos_inf
-       if (l.ne.'    +Inf') call abort
+       if (l.ne.'Infinity') call abort
        write(l,fmt=fmt)neg_inf
        if (l.ne.'    -Inf') call abort
        write(l,fmt=fmt)nan
@@ -69,7 +70,7 @@
 ! check a field width = 9
        fmt = '(F9.0)'
        write(l,fmt=fmt)pos_inf
-       if (l.ne.'+Infinity') call abort
+       if (l.ne.' Infinity') call abort
        write(l,fmt=fmt)neg_inf
        if (l.ne.'-Infinity') call abort
        write(l,fmt=fmt)nan
@@ -78,7 +79,7 @@
 ! check a field width = 14
        fmt = '(F14.0)'
        write(l,fmt=fmt)pos_inf
-       if (l.ne.'     +Infinity') call abort
+       if (l.ne.'      Infinity') call abort
        write(l,fmt=fmt)neg_inf
        if (l.ne.'     -Infinity') call abort
        write(l,fmt=fmt)nan
