File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -1126,6 +1126,9 @@ inline const DeclTypeSpec *Symbol::GetTypeImpl(int depth) const {
1126
1126
[&](const HostAssocDetails &x) {
1127
1127
return x.symbol ().GetTypeImpl (depth);
1128
1128
},
1129
+ [&](const GenericDetails &x) {
1130
+ return x.specific () ? x.specific ()->GetTypeImpl (depth) : nullptr ;
1131
+ },
1129
1132
[](const auto &) -> const DeclTypeSpec * { return nullptr ; },
1130
1133
},
1131
1134
details_);
Original file line number Diff line number Diff line change
1
+
2
+ #if STEP == 1
3
+ ! these modules must be read from module files
4
+ module generic_shadows_specific_m1
5
+ interface f ! reference must be to generic
6
+ module procedure f ! must have same name as generic interface
7
+ end interface
8
+ contains
9
+ character function f () ! must be character
10
+ f = ' q'
11
+ end
12
+ end
13
+ module generic_shadows_specific_m2
14
+ use generic_shadows_specific_m1
15
+ end
16
+ module generic_shadows_specific_m3
17
+ use generic_shadows_specific_m2 ! must be generic_shadows_specific_m2, not generic_shadows_specific_m1
18
+ contains
19
+ subroutine mustExist () ! not called, but must exist
20
+ character x
21
+ x = f()
22
+ end
23
+ end
24
+
25
+ #else
26
+ ! Check that expected code produced with no crash.
27
+ subroutine reproducer ()
28
+ use generic_shadows_specific_m2
29
+ use generic_shadows_specific_m3
30
+ character x
31
+ x = f()
32
+ end
33
+ #endif
34
+
35
+ ! RUN: rm -rf %t && mkdir -p %t
36
+ ! RUN: %flang_fc1 -fsyntax-only -DSTEP=1 -J%t %s
37
+ ! RUN: %flang_fc1 -emit-fir -J%t -o - %s | FileCheck %s
38
+
39
+ ! CHECK-LABEL: func.func @_QPreproducer
40
+ ! CHECK: fir.call @_QMgeneric_shadows_specific_m1Pf
You can’t perform that action at this time.
0 commit comments