* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
@ 2010-11-12 20:09 ` tkoenig at gcc dot gnu.org
2010-11-12 20:26 ` burnus at gcc dot gnu.org
` (12 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2010-11-12 20:09 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
Thomas Koenig <tkoenig at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2010.11.12 20:03:13
CC| |burnus at gcc dot gnu.org
Summary|VOLATI |VOLATILE has no effect
Ever Confirmed|0 |1
--- Comment #1 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2010-11-12 20:03:13 UTC ---
Apparently, VOLATILE has no effect at all. Another test case:
ig25@linux-fd1f:~/Krempel/Volatile> cat op2.f90
subroutine foo(j)
integer, volatile :: j
integer :: b
b = j + j + j + j
print *,b
end
ig25@linux-fd1f:~/Krempel/Volatile> gfortran -S -O3 -fdump-tree-optimized
op2.f90
ig25@linux-fd1f:~/Krempel/Volatile> cat op2.f90.144t.optimized
;; Function foo (foo_)
foo (integer(kind=4) & restrict j)
{
struct __st_parameter_dt dt_parm.0;
integer(kind=4) b;
integer(kind=4) b.1;
integer(kind=4) D.1504;
integer(kind=4) D.1503;
integer(kind=4) D.1502;
<bb 2>:
D.1502_3 = *j_1(D);
D.1503_4 = D.1502_3 + D.1502_3;
D.1504_6 = D.1502_3 + D.1503_4;
b.1_8 = D.1502_3 + D.1504_6;
b = b.1_8;
dt_parm.0.common.filename = &"op2.f90"[1]{lb: 1 sz: 1};
dt_parm.0.common.line = 5;
dt_parm.0.common.flags = 128;
dt_parm.0.common.unit = 6;
_gfortran_st_write (&dt_parm.0);
_gfortran_transfer_integer_write (&dt_parm.0, &b, 4);
_gfortran_st_write_done (&dt_parm.0);
return;
}
Tobias, any ideas? You implemented this a few years ago, if I remember
correctly :-)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
2010-11-12 20:09 ` [Bug fortran/45742] VOLATILE has no effect tkoenig at gcc dot gnu.org
@ 2010-11-12 20:26 ` burnus at gcc dot gnu.org
2010-11-12 20:55 ` burnus at gcc dot gnu.org
` (11 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-12 20:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-12 20:22:24 UTC ---
(In reply to comment #1)
> Apparently, VOLATILE has no effect at all. Another test case:
[...]
> Tobias, any ideas?
No idea:
$ LANG= gfortran -v 2>&1|grep -E 'experi|Targ'
Target: x86_64-unknown-linux-gnu
gcc version 4.6.0 20101111 (experimental) [trunk revision 166614] (GCC)
$ gfortran -fdump-tree-original -fdump-tree-optimized -O3 -c test.f90
$ cat test.f90.003t.original
...
integer(kind=4) b;
volatile integer(kind=4) j;
b = ((j + j) + j) + j;
...
$ cat test.f90.144t.optimized
...
j.1_1 ={v} j;
j.1_2 ={v} j;
D.1508_3 = j.1_2 + j.1_2;
j.1_4 ={v} j;
D.1509_5 = D.1508_3 + j.1_4;
j.1_6 ={v} j;
b.2_7 = D.1509_5 + j.1_6;
Looks good!
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
2010-11-12 20:09 ` [Bug fortran/45742] VOLATILE has no effect tkoenig at gcc dot gnu.org
2010-11-12 20:26 ` burnus at gcc dot gnu.org
@ 2010-11-12 20:55 ` burnus at gcc dot gnu.org
2010-11-12 22:13 ` tkoenig at gcc dot gnu.org
` (10 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-12 20:55 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-12 20:33:36 UTC ---
I think the first test case is wrongly folded already by the front end:
program main
integer, volatile :: j
if (j>j) call notfound
end program main
Gives the original dump:
MAIN__ ()
{
volatile integer(kind=4) j;
L.1:;
}
* * *
For some reason, also:
program main
integer, volatile :: j, k
if (j>k) call notfound
end program main
does not give a link error. The optimized dump has:
j.1_8 ={v} j;
k.2_9 ={v} k;
if (j.1_8 > k.2_9)
goto <bb 3>;
<bb 3>:
notfound ();
which looks OK, but there is no link error?!?
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2010-11-12 20:55 ` burnus at gcc dot gnu.org
@ 2010-11-12 22:13 ` tkoenig at gcc dot gnu.org
2010-11-12 23:06 ` burnus at gcc dot gnu.org
` (9 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2010-11-12 22:13 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #4 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2010-11-12 21:56:08 UTC ---
(In reply to comment #2)
> (In reply to comment #1)
> > Apparently, VOLATILE has no effect at all. Another test case:
> [...]
> > Tobias, any ideas?
>
> No idea:
>
> $ cat test.f90.003t.original
> ...
> integer(kind=4) b;
> volatile integer(kind=4) j;
>
> b = ((j + j) + j) + j;
I see:
foo (integer(kind=4) & restrict j)
{
integer(kind=4) b;
b = ((*j + *j) + *j) + *j;
{
struct __st_parameter_dt dt_parm.0;
so the volatile is missing. Huh?
This may be a Heisenbug. Unfortunately, valgrind doesn't work on
my system.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2010-11-12 22:13 ` tkoenig at gcc dot gnu.org
@ 2010-11-12 23:06 ` burnus at gcc dot gnu.org
2010-11-12 23:34 ` burnus at gcc dot gnu.org
` (8 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-12 23:06 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-12 23:02:06 UTC ---
(In reply to comment #4)
> > volatile integer(kind=4) j;
> I see:
> foo (integer(kind=4) & restrict j)
> so the volatile is missing. Huh?
Seemingly, we have tested different things - I looked a local variable "j"
which works while you looked at a dummy variable, which does not seem to work.
Thus, not a Heisenbug.
If one prints the symbol "j" one gets as backend declaration:
(gdb) p debug_tree (...->symtree->n.sym->backend_decl)
<parm_decl 0x2aaaace2e880 j
type <reference_type 0x2aaaacf1d930
type <integer_type 0x2aaaace37498 integer(kind=4) public SI
size <integer_cst 0x2aaaace276e0 constant 32>
unit size <integer_cst 0x2aaaace273e8 constant 4>
align 32 symtab 0 alias set -1 canonical type 0x2aaaace37498
precision 32 min <integer_cst 0x2aaaace27668 -2147483648> max <integer_cst
0x2aaaace27690 2147483647>
pointer_to_this <pointer_type 0x2aaaace443f0> reference_to_this
<reference_type 0x2aaaacf1d888>>
unsigned restrict DI
size <integer_cst 0x2aaaace277a8 constant 64>
unit size <integer_cst 0x2aaaace277d0 constant 8>
align 64 symtab 0 alias set -1 canonical type 0x2aaaacf1d930>
readonly used unsigned DI passed-by-reference file jfff4322.f90 line 1 col
0 size <integer_cst 0x2aaaace277a8 64> unit size <integer_cst 0x2aaaace277d0 8>
align 64 context <function_decl 0x2aaaacf1e600 foo> arg-type
<reference_type 0x2aaaacf1d930>>
While for my local variable, one gets:
<var_decl 0x2aaaacf200a0 j
type <integer_type 0x2aaaacf1d9d8 integer(kind=4) volatile SI
size <integer_cst 0x2aaaace276e0 constant 32>
unit size <integer_cst 0x2aaaace273e8 constant 4>
align 32 symtab 0 alias set -1 canonical type 0x2aaaacf1d9d8 precision
32 min <integer_cst 0x2aaaace27668 -2147483648> max <integer_cst 0x2aaaace27690
2147483647>>
volatile used SI file jfff4322.f90 line 2 col 0 size <integer_cst
0x2aaaace276e0 32> unit size <integer_cst 0x2aaaace273e8 4>
align 32 context <function_decl 0x2aaaacf1e600 foo> chain <var_decl
0x2aaaacf20000 b>>
Thus, the latter properly has the proper values. Seemingly, a THREE_IS_VOLATILE
or TYPE_QUAL_VOLATILE is missing somewhere.
* * *
For the test case in comment 0 alias comment 3 part one, the reason is clear:
The fold-const.c's fold_build2_stat_loc with code=GT_EXPR always and
unconditionally folds "j > j" to "false".
I have no idea whether that's OK or not - but as a C test case behaves
differently, that's now tracked as PR 46458.
* * *
Second test case of comment 3: Why is the "volatile" lost between the SSA tree
(-fdump-tree-optimize still has it) and RTL (-fdump-rtl-all, which does not
have any "mem/v" reference)? I am currently looking into that issue.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2010-11-12 23:06 ` burnus at gcc dot gnu.org
@ 2010-11-12 23:34 ` burnus at gcc dot gnu.org
2010-11-12 23:35 ` burnus at gcc dot gnu.org
` (7 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-12 23:34 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
Bug 45742 depends on bug 46458, which changed state.
Bug 46458 Summary: Volatile status ignored for "(j > j)" during fold_comparison of fold-const.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46458
What |Old Value |New Value
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |DUPLICATE
--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-12 23:30:00 UTC ---
*** Bug 46458 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2010-11-12 23:34 ` burnus at gcc dot gnu.org
@ 2010-11-12 23:35 ` burnus at gcc dot gnu.org
2010-11-13 0:15 ` burnus at gcc dot gnu.org
` (6 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-12 23:35 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-12 23:32:06 UTC ---
OK. The (j>j) and the tree->RTL issue are solved by the following patch. Thanks
to Andrew, Ian, Richard et al. (at #gcc) for the debugging help.
diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c
index 486fbbb..1f59a69 100644
--- a/gcc/fortran/trans-common.c
+++ b/gcc/fortran/trans-common.c
@@ -322,6 +322,7 @@ build_field (segment_info *h, tree union_type,
record_layout_info rli)
{
tree new_type;
TREE_THIS_VOLATILE (field) = 1;
+ TREE_SIDE_EFFECTS (field) = 1;
new_type = build_qualified_type (TREE_TYPE (field), TYPE_QUAL_VOLATILE);
TREE_TYPE (field) = new_type;
}
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 3f068de..845c96b 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -555,6 +555,7 @@ gfc_finish_var_decl (tree decl, gfc_symbol * sym)
if (sym->attr.volatile_)
{
TREE_THIS_VOLATILE (decl) = 1;
+ TREE_SIDE_EFFECTS (decl) = 1;
new_type = build_qualified_type (TREE_TYPE (decl), TYPE_QUAL_VOLATILE);
TREE_TYPE (decl) = new_type;
}
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (6 preceding siblings ...)
2010-11-12 23:35 ` burnus at gcc dot gnu.org
@ 2010-11-13 0:15 ` burnus at gcc dot gnu.org
2010-11-13 1:15 ` burnus at gcc dot gnu.org
` (5 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-13 0:15 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #8 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-12 23:55:06 UTC ---
The issue with the dummy is: Volatile will be set in gfc_get_symbol_decl - but
only if there is no backend declaration. For DUMMY arguments there is.
Thus, one needs to handle them differently.
Patch:
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1944,10 +1945,19 @@ create_function_arglist (gfc_symbol * sym)
if (f->sym->attr.proc_pointer)
type = build_pointer_type (type);
+ if (f->sym->attr.volatile_)
+ type = build_qualified_type (type, TYPE_QUAL_VOLATILE);
+
/* Build the argument declaration. */
parm = build_decl (input_location,
PARM_DECL, gfc_sym_identifier (f->sym), type);
+ if (f->sym->attr.volatile_)
+ {
+ TREE_THIS_VOLATILE (parm) = 1;
+ TREE_SIDE_EFFECTS (parm) = 1;
+ }
+
/* Fill in arg stuff. */
DECL_CONTEXT (parm) = fndecl;
DECL_ARG_TYPE (parm) = TREE_VALUE (typelist);
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (7 preceding siblings ...)
2010-11-13 0:15 ` burnus at gcc dot gnu.org
@ 2010-11-13 1:15 ` burnus at gcc dot gnu.org
2010-11-13 11:47 ` burnus at gcc dot gnu.org
` (4 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-13 1:15 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #9 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-13 00:25:13 UTC ---
Test case:
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/volatile12.f90
@@ -0,0 +1,16 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-optimized -O3" }
+!
+! PR fortran/45742
+!
+
+subroutine sub(arg)
+ integer, volatile :: arg
+ if (arg /= arg) call I_dont_exist()
+end
+
+! { dg-final { scan-tree-dump "integer.kind=.. . volatile arg" "optimized" } }
+! { dg-final { scan-tree-dump-times " =.v. arg;" 2 "optimized" } }
+! { dg-final { scan-tree-dump "i_dont_exist" "optimized" } }
+! { dg-final { cleanup-tree-dump "original" } }
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (8 preceding siblings ...)
2010-11-13 1:15 ` burnus at gcc dot gnu.org
@ 2010-11-13 11:47 ` burnus at gcc dot gnu.org
2010-11-13 12:55 ` burnus at gcc dot gnu.org
` (3 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-13 11:47 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #10 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-13 10:29:08 UTC ---
Author: burnus
Date: Sat Nov 13 10:29:04 2010
New Revision: 166701
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166701
Log:
2010-11-13 Tobias Burnus <burnus@net-b.de>
PR fortran/45742
* trans-common.c (build_field): Add TREE_SIDE_EFFECTS for
* volatile.
* trans-decl.c (gfc_finish_var_decl): Ditto.
(create_function_arglist): Handle volatile dummy arguments.
2010-11-13 Tobias Burnus <burnus@net-b.de>
PR fortran/45742
* gfortran.dg/volatile12.f90: New.
Added:
trunk/gcc/testsuite/gfortran.dg/volatile12.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-common.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (9 preceding siblings ...)
2010-11-13 11:47 ` burnus at gcc dot gnu.org
@ 2010-11-13 12:55 ` burnus at gcc dot gnu.org
2010-11-13 17:31 ` burnus at gcc dot gnu.org
` (2 subsequent siblings)
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-13 12:55 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #11 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-13 11:46:32 UTC ---
Author: burnus
Date: Sat Nov 13 11:46:25 2010
New Revision: 166702
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166702
Log:
2010-11-13 Tobias Burnus <burnus@net-b.de>
PR fortran/45742
* gfortran.dg/volatile12.f90: Use the right three in
* cleanup-tree-dump.
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/volatile12.f90
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (10 preceding siblings ...)
2010-11-13 12:55 ` burnus at gcc dot gnu.org
@ 2010-11-13 17:31 ` burnus at gcc dot gnu.org
2010-11-13 17:31 ` burnus at gcc dot gnu.org
2010-11-13 17:39 ` burnus at gcc dot gnu.org
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-13 17:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #12 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-13 17:23:54 UTC ---
Author: burnus
Date: Sat Nov 13 17:23:49 2010
New Revision: 166714
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166714
Log:
2010-11-13 Tobias Burnus <burnus@net-b.de>
PR fortran/45742
* trans-common.c (build_field): Add TREE_SIDE_EFFECTS for
* volatile.
* trans-decl.c (gfc_finish_var_decl): Ditto.
(create_function_arglist): Handle volatile dummy arguments.
2010-11-13 Tobias Burnus <burnus@net-b.de>
PR fortran/45742
* gfortran.dg/volatile12.f90: New.
Added:
branches/gcc-4_5-branch/gcc/testsuite/gfortran.dg/volatile12.f90
Modified:
branches/gcc-4_5-branch/gcc/fortran/ChangeLog
branches/gcc-4_5-branch/gcc/fortran/trans-common.c
branches/gcc-4_5-branch/gcc/fortran/trans-decl.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (11 preceding siblings ...)
2010-11-13 17:31 ` burnus at gcc dot gnu.org
@ 2010-11-13 17:31 ` burnus at gcc dot gnu.org
2010-11-13 17:39 ` burnus at gcc dot gnu.org
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-13 17:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
--- Comment #13 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-13 17:25:31 UTC ---
Author: burnus
Date: Sat Nov 13 17:25:28 2010
New Revision: 166715
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166715
Log:
2010-11-13 Tobias Burnus <burnus@net-b.de>
PR fortran/45742
* trans-common.c (build_field): Add TREE_SIDE_EFFECTS for
* volatile.
* trans-decl.c (gfc_finish_var_decl): Ditto.
(create_function_arglist): Handle volatile dummy arguments.
2010-11-13 Tobias Burnus <burnus@net-b.de>
PR fortran/45742
* gfortran.dg/volatile12.f90: New.
Added:
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/volatile12.f90
Modified:
branches/gcc-4_4-branch/gcc/fortran/ChangeLog
branches/gcc-4_4-branch/gcc/fortran/trans-common.c
branches/gcc-4_4-branch/gcc/fortran/trans-decl.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug fortran/45742] VOLATILE has no effect
[not found] <bug-45742-4@http.gcc.gnu.org/bugzilla/>
` (12 preceding siblings ...)
2010-11-13 17:31 ` burnus at gcc dot gnu.org
@ 2010-11-13 17:39 ` burnus at gcc dot gnu.org
13 siblings, 0 replies; 14+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-13 17:39 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45742
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--- Comment #14 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-13 17:27:06 UTC ---
FIXED on the trunk (4.6) and the 4.5 and 4.4 branches.
Thanks for the report.
^ permalink raw reply [flat|nested] 14+ messages in thread