| ! RUN: %flang_fc1 -emit-llvm -debug-info-kind=standalone %s -o - | FileCheck %s | |
| ! A named constant and a SAVE variable declared inside a procedure both have | |
| ! internal linkage. They are described in the scope of that procedure, are | |
| ! local to the compile unit and carry no linkage name. The `name` field being | |
| ! followed directly by `scope` is what checks that no linkage name is emitted. | |
| ! CHECK-DAG: ![[I4:.*]] = !DIBasicType(name: "integer(kind=4)", size: 32, encoding: DW_ATE_signed) | |
| ! CHECK-DAG: ![[SUB:.*]] = distinct !DISubprogram(name: "counter_fn"{{.*}}) | |
| integer function counter_fn() | |
| ! CHECK-DAG: ![[Q:.*]] = distinct !DIGlobalVariable(name: "q", scope: ![[SUB]], file: !{{[0-9]+}}, line: [[@LINE+2]], type: ![[I4]], isLocal: true, isDefinition: true) | |
| ! CHECK-DAG: !DIGlobalVariableExpression(var: ![[Q]], expr: !DIExpression()) | |
| integer, parameter :: q = 7 | |
| ! CHECK-DAG: ![[COUNT:.*]] = distinct !DIGlobalVariable(name: "counter", scope: ![[SUB]], file: !{{[0-9]+}}, line: [[@LINE+2]], type: ![[I4]], isLocal: true, isDefinition: true) | |
| ! CHECK-DAG: !DIGlobalVariableExpression(var: ![[COUNT]], expr: !DIExpression()) | |
| integer, save :: counter = 0 | |
| counter = counter + 1 | |
| counter_fn = q + counter | |
| end function counter_fn |