diff options
author | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-01-30 06:56:10 +0000 |
---|---|---|
committer | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-01-30 06:56:10 +0000 |
commit | 8d39570e68562ab8144f974b7719e39a851d1b4e (patch) | |
tree | 0114132c0dd451283cabb7a4b589fc60b10dae25 /gcc/testsuite/gfortran.dg/use_only_3.f90 | |
parent | 6b4e2db2963ae5320038ac6e3c714cb3884e1c87 (diff) | |
download | gcc-8d39570e68562ab8144f974b7719e39a851d1b4e.tar.gz |
2008-01-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34975
* symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
delete_symtree to gfc_delete_symtree.
* gfortran.h : Add prototype for gfc_delete_symtree.
* module.c (load_generic_interfaces): Transfer symbol to a
unique symtree and delete old symtree, instead of renaming.
(read_module): The rsym and the found symbol are the same, so
the found symtree can be deleted.
PR fortran/34429
* decl.c (match_char_spec): Remove the constraint on deferred
matching of functions and free the length expression.
delete_symtree to gfc_delete_symtree.
(gfc_match_type_spec): Whitespace.
(gfc_match_function_decl): Defer characteristic association for
all types except BT_UNKNOWN.
* parse.c (decode_specification_statement): Only derived type
function matching is delayed to the end of specification.
2008-01-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34975
* gfortran.dg/use_only_3.f90: New test.
* gfortran.dg/use_only_3.inc: Modules for new test.
PR fortran/34429
* gfortran.dg/function_charlen_2.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131956 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gfortran.dg/use_only_3.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/use_only_3.f90 | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/use_only_3.f90 b/gcc/testsuite/gfortran.dg/use_only_3.f90 new file mode 100644 index 00000000000..509752a7ba4 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/use_only_3.f90 @@ -0,0 +1,38 @@ +! { dg-do compile } +! This tests the patch for PR34975, in which 'n', 'ipol', and 'i' would be +! determined to have 'no IMPLICIT type'. It turned out to be fiendishly +! difficult to write a testcase for this PR because even the smallest changes +! would make the bug disappear. This is the testcase provided in the PR, except +! that all the modules are put in 'use_only_3.inc' in the same order as the +! makefile. Even this has an effect; only 'n' is now determined to be +! improperly typed. All this is due to the richness of the symtree and the +! way in which the renaming inserted new symtree entries. Unless somenody can +! come up with a reduced version, this relatively large file will have to be added +! to the testsuite. Fortunately, it only has to be comiled once:) +! +! Reported by Tobias Burnus <burnus@gcc.gnu.org> +! +include 'use_only_3.inc' +subroutine dforceb(c0, i, betae, ipol, bec0, ctabin, gqq, gqqm, qmat, dq2, df) + use gvecs + use gvecw, only: ngw + use parameters + use electrons_base, only: nx => nbspx, n => nbsp, nspin, f + use constants + use cvan + use ions_base + use ions_base, only : nas => nax + implicit none + + integer ipol, i, ctabin + complex c0(n), betae, df,& + & gqq,gqqm,& + & qmat + real bec0,& + & dq2, gmes + + end subroutine dforceb +! { dg-final { cleanup-modules "cell_base cvan gvecs kinds" } } +! { dg-final { cleanup-modules "constants electrons_base gvecw parameters" } } +! { dg-final { cleanup-modules "control_flags electrons_nose ions_base" } } + |