| ! This test verifies that both invocations produce a consistent order in the |
| ! generated `.mod` file. Previous versions of Flang exhibited non-deterministic |
| ! behavior due to iterating over a set ordered by heap pointers. This issue was |
| ! particularly noticeable when using Flang as a library. |
| |
| ! RUN: rm -rf %t && mkdir -p %t |
| ! RUN: %flang_fc1 \ |
| ! RUN: -fsyntax-only \ |
| ! RUN: -J%t \ |
| ! RUN: %S/Inputs/modfile73-a.f90 \ |
| ! RUN: %S/Inputs/modfile73-b.f90 \ |
| ! RUN: %S/Inputs/modfile73-c.f90 |
| ! RUN: %flang_fc1 -fsyntax-only -J%t %s |
| ! RUN: cat %t/modfile73.mod | FileCheck %s |
| |
| ! RUN: rm -rf %t && mkdir -p %t |
| ! RUN: %flang_fc1 \ |
| ! RUN: -fsyntax-only \ |
| ! RUN: -J%t \ |
| ! RUN: %S/Inputs/modfile73-a.f90 \ |
| ! RUN: %S/Inputs/modfile73-b.f90 \ |
| ! RUN: %S/Inputs/modfile73-c.f90 \ |
| ! RUN: %s |
| ! RUN: cat %t/modfile73.mod | FileCheck %s |
| |
| use modfile73ba |
| end |
| module modfile73 |
| use modfile73bb |
| use modfile73c |
| CONTAINS |
| subroutine init_ |
| end |
| subroutine delete_ |
| end |
| subroutine assign_ |
| end |
| function initialized_ |
| end |
| function same_ |
| end |
| function refcount_ |
| end |
| function id_ |
| end |
| function name_ |
| end |
| subroutine tag_new_object |
| end |
| end |
| |
| ! CHECK: !need$ {{.*}} n modfile73bb |
| ! CHECK-NEXT: !need$ {{.*}} n modfile73c |