This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Recent VCG changes break gfortran's -std=f95 option


I have the simple program 

  program a
  call random_seed()
  end program a

in the files a.f90 and b.f90.  That is, a.f90 and b.f90
are identical.

gfortran -o a -fdump-tree-all a.f90 
gfortran -o b -fdump-tree-all -std=f95 b.f90 


--- a.f90.003t.original	Mon Jun  5 19:09:22 2006
+++ b.f90.003t.original	Mon Jun  5 19:09:15 2006
@@ -1,6 +1,6 @@
 MAIN__ ()
 {
-  _gfortran_set_std (70, 127, 0);
+  _gfortran_set_std (2, 11, 0);
   _gfortran_random_seed (0B, 0B, 0B);
 
 

--- a.f90.004t.gimple	Mon Jun  5 19:09:22 2006
+++ b.f90.004t.gimple	Mon Jun  5 19:09:15 2006
@@ -1,6 +1,6 @@
 MAIN__ ()
 {
-  _gfortran_set_std (70, 127, 0);
+  _gfortran_set_std (2, 11, 0);
   _gfortran_random_seed (0B, 0B, 0B);
 }
 

--- a.f90.007t.vcg	Mon Jun  5 19:09:22 2006
+++ b.f90.007t.vcg	Mon Jun  5 19:09:15 2006
@@ -3,7 +3,6 @@
 node: { title: "EXIT" label: "EXIT" }
 edge: { sourcename: "ENTRY" targetname: "2" linestyle: solid priority: 100 }
 
-node: { title: "2" label: "#2\ncall_expr (1)\nreturn_expr (2)"}
-edge: { sourcename: "2" targetname: "EXIT" priority: 100 linestyle: solid }
+node: { title: "2" label: "#2\ncall_expr (1)\ncall_expr (2)"}
 }
 

--- a.f90.022t.cfg	Mon Jun  5 19:09:22 2006
+++ b.f90.022t.cfg	Mon Jun  5 19:09:15 2006
@@ -5,10 +5,9 @@
 {
   # BLOCK 2
   # PRED: ENTRY (fallthru)
-  _gfortran_set_std (70, 127, 0);
+  _gfortran_set_std (2, 11, 0);
   _gfortran_random_seed (0B, 0B, 0B);
-  return;
-  # SUCC: EXIT
+  # SUCC:
 
 }
 

These last two seem to be related to the infinite recursion 
that I see.  The diff for the assembly is

--- a.s	Mon Jun  5 19:25:59 2006
+++ b.s	Mon Jun  5 19:26:12 2006
@@ -1,4 +1,4 @@
-	.file	"a.f90"
+	.file	"b.f90"
 	.text
 .globl MAIN__
 	.type	MAIN__, @function
@@ -9,15 +9,13 @@
 	movq	%rsp, %rbp
 .LCFI1:
 	movl	$0, %edx
-	movl	$127, %esi
-	movl	$70, %edi
+	movl	$11, %esi
+	movl	$2, %edi
 	call	_gfortran_set_std
 	movl	$0, %edx
 	movl	$0, %esi
 	movl	$0, %edi
 	call	_gfortran_random_seed
-	leave
-	ret
 .LFE2:
 	.size	MAIN__, .-MAIN__
 	.section	.eh_frame,"a",@progbits

The absense of "leave" and "ret" can't be a Good Thing.

-- 
Steve


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]