diff options
author | Andrew Pinski <andrew_pinski@playstation.sony.com> | 2006-11-13 14:36:09 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2006-11-13 06:36:09 -0800 |
commit | 3e806a3df4fdd07fbe13b7dd17676999f7bd6f28 (patch) | |
tree | 7c95f205a56b989da87d75bbf669919470892f6b /gcc | |
parent | 46fb6400ee639a301bafb64bca2698b462d9e931 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-expr.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.fortran-torture/compile/transfer-1.f90 | 22 |
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 |