OSDN Git Service

fortran/
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 19 Dec 2006 19:41:35 +0000 (19:41 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 19 Dec 2006 19:41:35 +0000 (19:41 +0000)
2006-12-19  Tobias Burnus  <burnus@net-b.de>

PR fortran/39238
* trans-intrinsic.c: Check for associated(NULL,NULL).

testsuite/
2006-12-19  Tobias Burnus  <burnus@net-b.de>

PR fortran/39238
* gfortran.dg/associated_1.f90: Add test for associated(NULL,NULL).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120056 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/associated_1.f90

index 89c1252..ee984b1 100644 (file)
@@ -1,3 +1,8 @@
+2006-12-19  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/39238
+       * trans-intrinsic.c: Check for associated(NULL,NULL). 
+
 2006-12-19  Paul Thomas <pault@gcc.gnu.org>
 
        PR fortran/30236
 2006-12-19  Paul Thomas <pault@gcc.gnu.org>
 
        PR fortran/30236
index d284931..c10e9e5 100644 (file)
@@ -3142,7 +3142,9 @@ gfc_conv_associated (gfc_se *se, gfc_expr *expr)
          gfc_add_block_to_block (&se->pre, &arg1se.pre);
          gfc_add_block_to_block (&se->post, &arg1se.post);
           tmp = build2 (EQ_EXPR, boolean_type_node, arg1se.expr, arg2se.expr);
          gfc_add_block_to_block (&se->pre, &arg1se.pre);
          gfc_add_block_to_block (&se->post, &arg1se.post);
           tmp = build2 (EQ_EXPR, boolean_type_node, arg1se.expr, arg2se.expr);
-          se->expr = tmp;
+          tmp2 = build2 (NE_EXPR, boolean_type_node, arg1se.expr,
+                         null_pointer_node);
+          se->expr = build2 (TRUTH_AND_EXPR, boolean_type_node, tmp, tmp2);
         }
       else
         {
         }
       else
         {
index a901726..d287aa5 100644 (file)
@@ -1,3 +1,8 @@
+2006-12-19  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/39238
+       * gfortran.dg/associated_1.f90: Add test for associated(NULL,NULL).
+
 2006-12-19  Paul Thomas <pault@gcc.gnu.org>
 
        PR fortran/30236
 2006-12-19  Paul Thomas <pault@gcc.gnu.org>
 
        PR fortran/30236
@@ -41,8 +46,8 @@
 
 2006-12-18  Bill Wendling  <wendling@apple.com>
 
 
 2006-12-18  Bill Wendling  <wendling@apple.com>
 
-        * g++.old-deja/g++.mike/p11144.C: Renamed id to ID because
-        id is an OjbC keyword.
+       * g++.old-deja/g++.mike/p11144.C: Renamed id to ID because
+       id is an OjbC keyword.
 
 2006-12-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 
 2006-12-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
index 64cf2b3..e214fe2 100644 (file)
@@ -4,7 +4,10 @@
 program test
    real, pointer :: a, b
 
 program test
    real, pointer :: a, b
 
+   nullify(a,b)
+   if(associated(a,b).or.associated(a,a)) call abort()
    allocate(a)
    allocate(a)
+   if(associated(b,a)) call abort()
    if (.not.associated(x(a))) call abort ()
    if (.not.associated(a, x(a))) call abort ()
 
    if (.not.associated(x(a))) call abort ()
    if (.not.associated(a, x(a))) call abort ()