aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <andrew_pinski@playstation.sony.com>2006-11-13 14:36:09 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2006-11-13 06:36:09 -0800
commit3e806a3df4fdd07fbe13b7dd17676999f7bd6f28 (patch)
tree7c95f205a56b989da87d75bbf669919470892f6b /gcc
parent46fb6400ee639a301bafb64bca2698b462d9e931 (diff)
downloadgcc-3e806a3df4fdd07fbe13b7dd17676999f7bd6f28.zip
gcc-3e806a3df4fdd07fbe13b7dd17676999f7bd6f28.tar.gz
gcc-3e806a3df4fdd07fbe13b7dd17676999f7bd6f28.tar.bz2
re PR fortran/26994 (Scalar TRANSFER - error: invalid operand to unary operator)
2006-11-12 Andrew Pinski <andrew_pinski@playstation.sony.com> PR fortran/26994 * gfortran.fortran-torture/compile/transfer-1.f90: New testcase. 2006-11-12 Andrew Pinski <andrew_pinski@playstation.sony.com> PR fortran/26994 * trans-expr.c (gfc_conv_expr_reference): Set TREE_STATIC on the new CONST_DECL. From-SVN: r118761
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-expr.c1
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/compile/transfer-1.f9022
4 files changed, 35 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 0c0d4bd..3cd8b11 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2006-11-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR fortran/26994
+ * trans-expr.c (gfc_conv_expr_reference): Set TREE_STATIC on the
+ new CONST_DECL.
+
2006-11-11 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
* array.c: Add 2006 to copyright years.
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 6f1e163..6d8b8b9 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -3104,6 +3104,7 @@ gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr)
{
var = build_decl (CONST_DECL, NULL, TREE_TYPE (se->expr));
DECL_INITIAL (var) = se->expr;
+ TREE_STATIC (var) = 1;
pushdecl (var);
}
else
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6077396..9eba88e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2006-11-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR fortran/26994
+ * gfortran.fortran-torture/compile/transfer-1.f90:
+ New testcase.
+
2006-11-12 H.J. Lu <hongjiu.lu@intel.com>
Zdenek Dvorak <dvorakz@suse.cz>
diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/transfer-1.f90 b/gcc/testsuite/gfortran.fortran-torture/compile/transfer-1.f90
new file mode 100644
index 0000000..9fa4bfc
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/compile/transfer-1.f90
@@ -0,0 +1,22 @@
+! Bigendian test posted by Perseus in comp.lang.fortran on 4 July 2005.
+ integer(1), parameter :: zero = 0
+ LOGICAL, PARAMETER :: bigend = IACHAR(TRANSFER(1,"a")) == zero
+ LOGICAL :: bigendian
+ call foo ()
+contains
+ subroutine foo ()
+ integer :: chr, ans
+ if (bigend) then
+ ans = 1
+ else
+ ans = 0
+ end if
+ chr = IACHAR(TRANSFER(1,"a"))
+ bigendian = chr == 0_4
+ if (bigendian) then
+ ans = 1
+ else
+ ans = 0
+ end if
+ end subroutine foo
+end