]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorDominique d'Humieres <dominiq@gcc.gnu.org>
Sat, 20 Feb 2016 14:10:55 +0000 (15:10 +0100)
committerDominique d'Humieres <dominiq@gcc.gnu.org>
Sat, 20 Feb 2016 14:10:55 +0000 (15:10 +0100)
2016-02-20  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/57365
gfortran.dg/allocate_with_source_18.f03: New test.

2016-02-20  Harald Anlauf  <anlauf@gmx.de>

PR fortran/52531
gfortran.dg/gomp/pr52531.f90: New test.

From-SVN: r233588

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/allocate_with_source_18.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/gomp/pr52531.f90 [new file with mode: 0644]

index 9f70ed4343ae0b26754c415dd5ccdca45c2c6984..77a4c01dec64853d3163642986a2a8e5fcda48d8 100644 (file)
@@ -1,3 +1,13 @@
+2016-02-20  Dominique d'Humieres  <dominiq@lps.ens.fr>
+
+       PR fortran/57365
+       gfortran.dg/allocate_with_source_18.f03: New test.
+
+2016-02-20  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/52531
+       gfortran.dg/gomp/pr52531.f90: New test.
+
 2016-02-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
        PR c++/69865
diff --git a/gcc/testsuite/gfortran.dg/allocate_with_source_18.f03 b/gcc/testsuite/gfortran.dg/allocate_with_source_18.f03
new file mode 100644 (file)
index 0000000..746bd0d
--- /dev/null
@@ -0,0 +1,31 @@
+! { dg-do run }
+!
+! PR fortran/57365
+! [OOP] Sourced allocation fails with unlimited polymorphism
+! Contributed by <rxs@hotmail.de>
+!
+program bug
+
+    implicit none
+    character(len=:), allocatable :: test
+
+    test = "A test case"
+    call allocate_test(test)
+    deallocate(test)
+
+contains
+
+    subroutine allocate_test(var)
+        class(*) :: var
+        class(*), pointer :: copyofvar
+        allocate(copyofvar, source=var)
+        select type (copyofvar)
+            type is (character(len=*))
+!                print*, len(copyofvar), copyofvar
+                if (len(copyofvar) /= 11) call abort ()
+                if (copyofvar /= "A test case") call abort ()
+        end select
+        deallocate(copyofvar)
+    end subroutine
+
+end program bug
diff --git a/gcc/testsuite/gfortran.dg/gomp/pr52531.f90 b/gcc/testsuite/gfortran.dg/gomp/pr52531.f90
new file mode 100644 (file)
index 0000000..e39d359
--- /dev/null
@@ -0,0 +1,16 @@
+! { dg-do compile }
+! PR fortran/52531
+module test_mod
+  type, public :: test_type
+  end type
+contains
+  subroutine foo(bar)
+    type(test_type) :: bar
+!$omp parallel default(none) shared(bar) ! Compiles if one removes default(none)
+    call question(bar)
+!$omp end parallel
+  end subroutine
+  subroutine question(var)
+    class(test_type), intent(in) :: var ! Compiles if one replaces class by type
+  end subroutine
+end module