llvm/flang/test/semantics
Tim Keith 7ebbe7dca4 [flang] Write private symbols to .mod files
We were trying to write only symbols that are part of the public API of
a module to the .mod file. The problem with that is that submodules need
access to the private symbols in their ancestor modules and submodules.

For now, just write out all of the symbols, private or otherwise.
We could be more precise by omitting some private symbols for modules
that don't have separate module procedures and so can't have submodules.

Also, the old implementation went into an infinite loop for recursive
derived types.

This makes CollectSymbols simpler, so have it do both the collecting and
sorting. Make it static so that the types don't have to be defined in
mod-file.h.

Original-commit: flang-compiler/f18@33a10d6238
Reviewed-on: https://github.com/flang-compiler/f18/pull/177
Tree-same-pre-rewrite: false
2018-09-10 11:39:03 -07:00
..
CMakeLists.txt [flang] Resolve derived type parameters 2018-09-04 10:28:27 -07:00
implicit01.f90
implicit02.f90
implicit03.f90
implicit04.f90
implicit05.f90
implicit06.f90
implicit07.f90 [flang] Add support for BLOCK construct 2018-08-27 11:48:49 -07:00
implicit08.f90 [flang] Add support for BLOCK construct 2018-08-27 11:48:49 -07:00
modfile01.f90 [flang] Write private symbols to .mod files 2018-09-10 11:39:03 -07:00
modfile02.f90 [flang] Write private symbols to .mod files 2018-09-10 11:39:03 -07:00
modfile03.f90 [flang] Write private symbols to .mod files 2018-09-10 11:39:03 -07:00
modfile04.f90 [flang] Add a .mod file test with subprograms 2018-07-16 16:44:07 -07:00
modfile05.f90 [flang] Handle VOLATILE or ASYNCHRONOUS added to use-associated entity 2018-07-17 06:39:38 -07:00
modfile06.f90 [flang] Support writing interfaces in module files. 2018-07-19 13:28:24 -07:00
modfile07.f90 [flang] Correctly resolve generics with forward references 2018-07-20 10:46:11 -07:00
modfile08.f90 [flang] Add procedure pointer components for derived types 2018-09-06 12:06:32 -07:00
modfile09-a.f90 [flang] Add support for submodules 2018-08-02 16:21:27 -07:00
modfile09-b.f90 [flang] Add support for submodules 2018-08-02 16:21:27 -07:00
modfile09-c.f90 [flang] Add support for submodules 2018-08-02 16:21:27 -07:00
modfile09-d.f90 [flang] Add support for submodules 2018-08-02 16:21:27 -07:00
modfile10.f90 [flang] More derived type name resolution 2018-09-06 08:01:49 -07:00
modfile11.f90 [flang] More derived type name resolution 2018-09-06 08:01:49 -07:00
resolve01.f90
resolve02.f90
resolve03.f90
resolve04.f90 [flang] Add support for BLOCK construct 2018-08-27 11:48:49 -07:00
resolve05.f90
resolve06.f90
resolve07.f90
resolve08.f90
resolve09.f90 [flang] Ensure use of ObjectEntityDetails for data objects 2018-09-07 09:57:14 -07:00
resolve10.f90
resolve11.f90
resolve12.f90 [flang] Implement reading of module files 2018-07-25 10:11:38 -07:00
resolve13.f90 [flang] Process procedure declarations and derived types. 2018-06-05 12:18:35 -07:00
resolve14.f90 [flang] Process procedure declarations and derived types. 2018-06-05 12:18:35 -07:00
resolve15.f90 [flang] Correctly resolve generics with forward references 2018-07-20 10:46:11 -07:00
resolve16.f90 [flang] Process procedure declarations and derived types. 2018-06-05 12:18:35 -07:00
resolve17.f90 [flang] Process procedure declarations and derived types. 2018-06-05 12:18:35 -07:00
resolve18.f90 [flang] Process procedure declarations and derived types. 2018-06-05 12:18:35 -07:00
resolve19.f90 [flang] Process procedure declarations and derived types. 2018-06-05 12:18:35 -07:00
resolve20.f90 [flang] Process procedure declarations and derived types. 2018-06-05 12:18:35 -07:00
resolve21.f90 [flang] Name resolution for derived types. 2018-06-22 08:21:19 -07:00
resolve22.f90 [flang] Name resolution for derived types. 2018-06-22 08:21:19 -07:00
resolve23.f90 [flang] Name resolution for derived types. 2018-06-22 08:21:19 -07:00
resolve24.f90 [flang] Add missing copyright. 2018-07-05 10:36:18 -07:00
resolve25.f90 [flang] Correctly resolve generics with forward references 2018-07-20 10:46:11 -07:00
resolve26.f90 [flang] Add missing copyrights. 2018-08-22 16:05:53 -07:00
resolve27.f90 [flang] Add missing copyrights. 2018-08-22 16:05:53 -07:00
resolve28.f90 [flang] Implement host association and import statements 2018-08-22 16:05:06 -07:00
resolve29.f90 [flang] Implement host association and import statements 2018-08-22 16:05:06 -07:00
resolve30.f90 [flang] Small improvements to name resolution 2018-08-29 11:38:12 -07:00
resolve31.f90 [flang] Address review comments 2018-09-07 09:06:27 -07:00
resolve32.f90 [flang] More derived type name resolution 2018-09-06 08:01:49 -07:00
resolve33.f90 [flang] Resolve derived type parameters 2018-09-04 10:28:27 -07:00
symbol01.f90 [flang] Ensure use of ObjectEntityDetails for data objects 2018-09-07 09:57:14 -07:00
symbol02.f90 [flang] Ensure use of ObjectEntityDetails for data objects 2018-09-07 09:57:14 -07:00
symbol03.f90 [flang] Ensure use of ObjectEntityDetails for data objects 2018-09-07 09:57:14 -07:00
symbol04.f90 [flang] Add another host-associate test 2018-08-23 07:41:06 -07:00
symbol05.f90 [flang] Ensure use of ObjectEntityDetails for data objects 2018-09-07 09:57:14 -07:00
test_errors.sh [flang] Implement reading of module files 2018-07-25 10:11:38 -07:00
test_modfile.sh [flang] Add support for submodules 2018-08-02 16:21:27 -07:00
test_symbols.sh [flang] Fix test script portability problems. 2018-07-17 16:48:50 -07:00