aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog9
-rw-r--r--gcc/fortran/match.c6
-rw-r--r--gcc/fortran/parse.c2
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gfortran.dg/allocate_alloc_opt_1.f902
-rw-r--r--gcc/testsuite/gfortran.dg/allocate_class_1.f902
-rw-r--r--gcc/testsuite/gfortran.dg/allocate_with_typespec_4.f902
-rw-r--r--gcc/testsuite/gfortran.dg/deallocate_alloc_opt_1.f902
8 files changed, 26 insertions, 8 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index db6f87d..4a79df8 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2012-03-28 Paul Thomas <pault@gcc.gnu.org>
+ Tobias Burnus <burnus@gcc.gnu.org>
+
+ PR fortran/52652
+ * match.c (gfc_match_allocate, gfc_match_deallocate): Change
+ "not.. or" to "neither.. nor".
+ * parse.c (decode_specification_statement): Correct error in
+ chpice of matching function for "allocatable".
+
2012-03-23 Janne Blomqvist <jb@gcc.gnu.org>
* gfortran.h (GFC_MAX_LINE): Remove unused macro.
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 1438160..15edfc3 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -3572,8 +3572,8 @@ gfc_match_allocate (void)
|| sym->ns->proc_name->attr.proc_pointer);
if (b1 && b2 && !b3)
{
- gfc_error ("Allocate-object at %L is not a nonprocedure pointer "
- "or an allocatable variable", &tail->expr->where);
+ gfc_error ("Allocate-object at %L is neither a nonprocedure pointer "
+ "nor an allocatable variable", &tail->expr->where);
goto cleanup;
}
@@ -3904,7 +3904,7 @@ gfc_match_deallocate (void)
if (b1 && b2)
{
gfc_error ("Allocate-object at %C is not a nonprocedure pointer "
- "or an allocatable variable");
+ "nor an allocatable variable");
goto cleanup;
}
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index 317fb84..4e7f691 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -161,7 +161,7 @@ decode_specification_statement (void)
case 'a':
match ("abstract% interface", gfc_match_abstract_interface,
ST_INTERFACE);
- match ("allocatable", gfc_match_asynchronous, ST_ATTR_DECL);
+ match ("allocatable", gfc_match_allocatable, ST_ATTR_DECL);
match ("asynchronous", gfc_match_asynchronous, ST_ATTR_DECL);
break;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b965221..945e507 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2012-03-28 Paul Thomas <pault@gcc.gnu.org>
+ Tobias Burnus <burnus@gcc.gnu.org>
+
+ PR fortran/52652
+ * gfortran.dg/allocate_class_1.f90 : Change error test.
+ * gfortran.dg/allocate_with_typespec_4.f90 : Change error test.
+ * gfortran.dg/allocate_alloc_opt_1.f90 : Change error test.
+ * gfortran.dg/deallocate_alloc_opt_1.f90 : Change error test.
+
2012-03-28 Jakub Jelinek <jakub@redhat.com>
PR middle-end/52691
diff --git a/gcc/testsuite/gfortran.dg/allocate_alloc_opt_1.f90 b/gcc/testsuite/gfortran.dg/allocate_alloc_opt_1.f90
index 52e0262f..3a05e8c 100644
--- a/gcc/testsuite/gfortran.dg/allocate_alloc_opt_1.f90
+++ b/gcc/testsuite/gfortran.dg/allocate_alloc_opt_1.f90
@@ -24,7 +24,7 @@ program a
allocate(i(2), errmsg=err) ! { dg-warning "useless without a STAT" }
allocate(i(2), stat=j, errmsg=x) ! { dg-error "must be a scalar CHARACTER" }
- allocate(err) ! { dg-error "nonprocedure pointer or an allocatable" }
+ allocate(err) ! { dg-error "neither a nonprocedure pointer nor an allocatable" }
allocate(error(2),stat=j,errmsg=error(1)) ! { dg-error "shall not be ALLOCATEd within" }
allocate(i(2), stat = i(1)) ! { dg-error "shall not be ALLOCATEd within" }
diff --git a/gcc/testsuite/gfortran.dg/allocate_class_1.f90 b/gcc/testsuite/gfortran.dg/allocate_class_1.f90
index 1dea056..9a2a5cb 100644
--- a/gcc/testsuite/gfortran.dg/allocate_class_1.f90
+++ b/gcc/testsuite/gfortran.dg/allocate_class_1.f90
@@ -7,5 +7,5 @@
type :: t0
end type
class(t0) :: x ! { dg-error "must be dummy, allocatable or pointer" }
- allocate(x) ! { dg-error "is not a nonprocedure pointer or an allocatable variable" }
+ allocate(x) ! { dg-error "is neither a nonprocedure pointer nor an allocatable variable" }
end
diff --git a/gcc/testsuite/gfortran.dg/allocate_with_typespec_4.f90 b/gcc/testsuite/gfortran.dg/allocate_with_typespec_4.f90
index 327f28d..54ed109 100644
--- a/gcc/testsuite/gfortran.dg/allocate_with_typespec_4.f90
+++ b/gcc/testsuite/gfortran.dg/allocate_with_typespec_4.f90
@@ -21,7 +21,7 @@ subroutine not_an_f03_intrinsic
allocate(real*8 :: y(1)) ! { dg-error "Invalid type-spec at" }
allocate(real*4 :: x8) ! { dg-error "Invalid type-spec at" }
allocate(real*4 :: y8(1)) ! { dg-error "Invalid type-spec at" }
- allocate(double complex :: d1) ! { dg-error "not a nonprocedure pointer or an allocatable" }
+ allocate(double complex :: d1) ! { dg-error "neither a nonprocedure pointer nor an allocatable" }
allocate(real_type :: b)
allocate(real_type :: c(1))
diff --git a/gcc/testsuite/gfortran.dg/deallocate_alloc_opt_1.f90 b/gcc/testsuite/gfortran.dg/deallocate_alloc_opt_1.f90
index 5c00741..969ce25 100644
--- a/gcc/testsuite/gfortran.dg/deallocate_alloc_opt_1.f90
+++ b/gcc/testsuite/gfortran.dg/deallocate_alloc_opt_1.f90
@@ -24,7 +24,7 @@ program a
deallocate(i, errmsg=err) ! { dg-warning "useless without a STAT" }
deallocate(i, stat=j, errmsg=x) ! { dg-error "must be a scalar CHARACTER" }
- deallocate(err) ! { dg-error "nonprocedure pointer or an allocatable" }
+ deallocate(err) ! { dg-error "nonprocedure pointer nor an allocatable" }
deallocate(error,stat=j,errmsg=error(1)) ! { dg-error "shall not be DEALLOCATEd within" }
deallocate(i, stat = i(1)) ! { dg-error "shall not be DEALLOCATEd within" }