Skip to content

Commit 40a16e7

Browse files
committed
Revert "[flang][driver] rename flang-new to flang (llvm#110023)"
This reverts commit 06eb10d.
1 parent 91883c7 commit 40a16e7

File tree

70 files changed

+228
-249
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+228
-249
lines changed

.github/workflows/release-binaries.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ jobs:
328328
run: |
329329
# Build some of the mlir tools that take a long time to link
330330
if [ "${{ needs.prepare.outputs.build-flang }}" = "true" ]; then
331-
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build/tools/clang/stage2-bins/ -j2 flang bbc
331+
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build/tools/clang/stage2-bins/ -j2 flang-new bbc
332332
fi
333333
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build/tools/clang/stage2-bins/ \
334334
mlir-bytecode-parser-fuzzer \

clang/include/clang/Basic/DiagnosticDriverKinds.td

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,6 @@ def warn_drv_unsupported_option_for_processor : Warning<
147147
def warn_drv_unsupported_openmp_library : Warning<
148148
"the library '%0=%1' is not supported, OpenMP will not be enabled">,
149149
InGroup<OptionIgnored>;
150-
def warn_openmp_experimental : Warning<
151-
"OpenMP support in flang is still experimental">,
152-
InGroup<ExperimentalOption>;
153150

154151
def err_drv_invalid_thread_model_for_target : Error<
155152
"invalid thread model '%0' in '%1' for this target">;

clang/include/clang/Basic/DiagnosticGroups.td

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1583,7 +1583,3 @@ def ExtractAPIMisuse : DiagGroup<"extractapi-misuse">;
15831583
// Warnings about using the non-standard extension having an explicit specialization
15841584
// with a storage class specifier.
15851585
def ExplicitSpecializationStorageClass : DiagGroup<"explicit-specialization-storage-class">;
1586-
1587-
// A warning for options that enable a feature that is not yet complete
1588-
def ExperimentalOption : DiagGroup<"experimental-option">;
1589-

clang/include/clang/Driver/Options.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6077,7 +6077,7 @@ def _sysroot_EQ : Joined<["--"], "sysroot=">, Visibility<[ClangOption, FlangOpti
60776077
def _sysroot : Separate<["--"], "sysroot">, Alias<_sysroot_EQ>;
60786078

60796079
//===----------------------------------------------------------------------===//
6080-
// pie/pic options (clang + flang)
6080+
// pie/pic options (clang + flang-new)
60816081
//===----------------------------------------------------------------------===//
60826082
let Visibility = [ClangOption, FlangOption] in {
60836083

@@ -6093,7 +6093,7 @@ def fno_pie : Flag<["-"], "fno-pie">, Group<f_Group>;
60936093
} // let Vis = [Default, FlangOption]
60946094

60956095
//===----------------------------------------------------------------------===//
6096-
// Target Options (clang + flang)
6096+
// Target Options (clang + flang-new)
60976097
//===----------------------------------------------------------------------===//
60986098
let Flags = [TargetSpecific] in {
60996099
let Visibility = [ClangOption, FlangOption] in {

clang/lib/Driver/Driver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2029,7 +2029,7 @@ void Driver::PrintHelp(bool ShowHidden) const {
20292029

20302030
void Driver::PrintVersion(const Compilation &C, raw_ostream &OS) const {
20312031
if (IsFlangMode()) {
2032-
OS << getClangToolFullVersion("flang") << '\n';
2032+
OS << getClangToolFullVersion("flang-new") << '\n';
20332033
} else {
20342034
// FIXME: The following handlers should use a callback mechanism, we don't
20352035
// know what the client would like to do.

clang/lib/Driver/ToolChain.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -386,9 +386,6 @@ static const DriverSuffix *FindDriverSuffix(StringRef ProgName, size_t &Pos) {
386386
{"cl", "--driver-mode=cl"},
387387
{"++", "--driver-mode=g++"},
388388
{"flang", "--driver-mode=flang"},
389-
// For backwards compatibility, we create a symlink for `flang` called
390-
// `flang-new`. This will be removed in the future.
391-
{"flang-new", "--driver-mode=flang"},
392389
{"clang-dxc", "--driver-mode=dxc"},
393390
};
394391

clang/lib/Driver/ToolChains/Flang.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -788,9 +788,6 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA,
788788

789789
if (Args.hasArg(options::OPT_fopenmp_force_usm))
790790
CmdArgs.push_back("-fopenmp-force-usm");
791-
// TODO: OpenMP support isn't "done" yet, so for now we warn that it
792-
// is experimental.
793-
D.Diag(diag::warn_openmp_experimental);
794791

795792
// FIXME: Clang supports a whole bunch more flags here.
796793
break;
@@ -885,12 +882,14 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA,
885882

886883
CmdArgs.push_back(Input.getFilename());
887884

888-
const char *Exec = Args.MakeArgString(D.GetProgramPath("flang", TC));
885+
// TODO: Replace flang-new with flang once the new driver replaces the
886+
// throwaway driver
887+
const char *Exec = Args.MakeArgString(D.GetProgramPath("flang-new", TC));
889888
C.addCommand(std::make_unique<Command>(JA, *this,
890889
ResponseFileSupport::AtFileUTF8(),
891890
Exec, CmdArgs, Inputs, Output));
892891
}
893892

894-
Flang::Flang(const ToolChain &TC) : Tool("flang", "flang frontend", TC) {}
893+
Flang::Flang(const ToolChain &TC) : Tool("flang-new", "flang frontend", TC) {}
895894

896895
Flang::~Flang() {}

clang/test/Driver/flang/flang.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
! * (no type specified, resulting in an object file)
1414

1515
! All invocations should begin with flang -fc1, consume up to here.
16-
! ALL-LABEL: "{{[^"]*}}flang{{[^"/]*}}" "-fc1"
16+
! ALL-LABEL: "{{[^"]*}}flang-new{{[^"/]*}}" "-fc1"
1717

1818
! Check that f90 files are not treated as "previously preprocessed"
1919
! ... in --driver-mode=flang.

clang/test/Driver/flang/flang_ucase.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
! * (no type specified, resulting in an object file)
1414

1515
! All invocations should begin with flang -fc1, consume up to here.
16-
! ALL-LABEL: "{{[^"]*}}flang{{[^"/]*}}" "-fc1"
16+
! ALL-LABEL: "{{[^"]*}}flang-new{{[^"/]*}}" "-fc1"
1717

1818
! Check that f90 files are not treated as "previously preprocessed"
1919
! ... in --driver-mode=flang.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
! Check that flang can handle mixed C and fortran inputs.
22

33
! RUN: %clang --driver-mode=flang -### -fsyntax-only %S/Inputs/one.f90 %S/Inputs/other.c 2>&1 | FileCheck --check-prefixes=CHECK-SYNTAX-ONLY %s
4-
! CHECK-SYNTAX-ONLY-LABEL: "{{[^"]*}}flang{{[^"/]*}}" "-fc1"
4+
! CHECK-SYNTAX-ONLY-LABEL: "{{[^"]*}}flang-new{{[^"/]*}}" "-fc1"
55
! CHECK-SYNTAX-ONLY: "{{[^"]*}}/Inputs/one.f90"
66
! CHECK-SYNTAX-ONLY-LABEL: "{{[^"]*}}clang{{[^"/]*}}" "-cc1"
77
! CHECK-SYNTAX-ONLY: "{{[^"]*}}/Inputs/other.c"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
! Check that flang driver can handle multiple inputs at once.
22

33
! RUN: %clang --driver-mode=flang -### -fsyntax-only %S/Inputs/one.f90 %S/Inputs/two.f90 2>&1 | FileCheck --check-prefixes=CHECK-SYNTAX-ONLY %s
4-
! CHECK-SYNTAX-ONLY-LABEL: "{{[^"]*}}flang{{[^"/]*}}" "-fc1"
4+
! CHECK-SYNTAX-ONLY-LABEL: "{{[^"]*}}flang-new{{[^"/]*}}" "-fc1"
55
! CHECK-SYNTAX-ONLY: "{{[^"]*}}/Inputs/one.f90"
6-
! CHECK-SYNTAX-ONLY-LABEL: "{{[^"]*}}flang{{[^"/]*}}" "-fc1"
6+
! CHECK-SYNTAX-ONLY-LABEL: "{{[^"]*}}flang-new{{[^"/]*}}" "-fc1"
77
! CHECK-SYNTAX-ONLY: "{{[^"]*}}/Inputs/two.f90"

flang/docs/FlangDriver.md

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,17 @@ local:
1515
```
1616

1717
There are two main drivers in Flang:
18-
* the compiler driver, `flang`
19-
* the frontend driver, `flang -fc1`
18+
* the compiler driver, `flang-new`
19+
* the frontend driver, `flang-new -fc1`
20+
21+
> **_NOTE:_** The diagrams in this document refer to `flang` as opposed to
22+
> `flang-new`. Eventually, `flang-new` will be renamed as `flang` and the
23+
> diagrams reflect the final design that we are still working towards.
2024
2125
The **compiler driver** will allow you to control all compilation phases (e.g.
2226
preprocessing, semantic checks, code-generation, code-optimisation, lowering
2327
and linking). For frontend specific tasks, the compiler driver creates a
24-
Fortran compilation job and delegates it to `flang -fc1`, the frontend
28+
Fortran compilation job and delegates it to `flang-new -fc1`, the frontend
2529
driver. For linking, it creates a linker job and calls an external linker (e.g.
2630
LLVM's [`lld`](https://lld.llvm.org/)). It can also call other tools such as
2731
external assemblers (e.g. [`as`](https://www.gnu.org/software/binutils/)). In
@@ -43,7 +47,7 @@ frontend. It uses MLIR and LLVM for code-generation and can be viewed as a
4347
driver for Flang, LLVM and MLIR libraries. Contrary to the compiler driver, it
4448
is not capable of calling any external tools (including linkers). It is aware
4549
of all the frontend internals that are "hidden" from the compiler driver. It
46-
accepts many frontend-specific options not available in `flang` and as such
50+
accepts many frontend-specific options not available in `flang-new` and as such
4751
it provides a finer control over the frontend. Note that this tool is mostly
4852
intended for Flang developers. In particular, there are no guarantees about the
4953
stability of its interface and compiler developers can use it to experiment
@@ -58,30 +62,30 @@ frontend specific flag from the _compiler_ directly to the _frontend_ driver,
5862
e.g.:
5963

6064
```bash
61-
flang -Xflang -fdebug-dump-parse-tree input.f95
65+
flang-new -Xflang -fdebug-dump-parse-tree input.f95
6266
```
6367

64-
In the invocation above, `-fdebug-dump-parse-tree` is forwarded to `flang
68+
In the invocation above, `-fdebug-dump-parse-tree` is forwarded to `flang-new
6569
-fc1`. Without the forwarding flag, `-Xflang`, you would see the following
6670
warning:
6771

6872
```bash
69-
flang: warning: argument unused during compilation:
73+
flang-new: warning: argument unused during compilation:
7074
```
7175

72-
As `-fdebug-dump-parse-tree` is only supported by `flang -fc1`, `flang`
76+
As `-fdebug-dump-parse-tree` is only supported by `flang-new -fc1`, `flang-new`
7377
will ignore it when used without `Xflang`.
7478

7579
## Why Do We Need Two Drivers?
76-
As hinted above, `flang` and `flang -fc1` are two separate tools. The
77-
fact that these tools are accessed through one binary, `flang`, is just an
80+
As hinted above, `flang-new` and `flang-new -fc1` are two separate tools. The
81+
fact that these tools are accessed through one binary, `flang-new`, is just an
7882
implementation detail. Each tool has a separate list of options, albeit defined
7983
in the same file: `clang/include/clang/Driver/Options.td`.
8084

8185
The separation helps us split various tasks and allows us to implement more
82-
specialised tools. In particular, `flang` is not aware of various
86+
specialised tools. In particular, `flang-new` is not aware of various
8387
compilation phases within the frontend (e.g. scanning, parsing or semantic
84-
checks). It does not have to be. Conversely, the frontend driver, `flang
88+
checks). It does not have to be. Conversely, the frontend driver, `flang-new
8589
-fc1`, needs not to be concerned with linkers or other external tools like
8690
assemblers. Nor does it need to know where to look for various systems
8791
libraries, which is usually OS and platform specific.
@@ -100,7 +104,7 @@ GCC](https://en.wikibooks.org/wiki/GNU_C_Compiler_Internals/GNU_C_Compiler_Archi
100104
In fact, Flang needs to adhere to this model in order to be able to re-use
101105
Clang's driver library. If you are more familiar with the [architecture of
102106
GFortran](https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gfortran/About-GNU-Fortran.html)
103-
than Clang, then `flang` corresponds to `gfortran` and `flang -fc1` to
107+
than Clang, then `flang-new` corresponds to `gfortran` and `flang-new -fc1` to
104108
`f951`.
105109

106110
## Compiler Driver
@@ -131,15 +135,15 @@ output from one action is the input for the subsequent one. You can use the
131135
`-ccc-print-phases` flag to see the sequence of actions that the driver will
132136
create for your compiler invocation:
133137
```bash
134-
flang -ccc-print-phases -E file.f
138+
flang-new -ccc-print-phases -E file.f
135139
+- 0: input, "file.f", f95-cpp-input
136140
1: preprocessor, {0}, f95
137141
```
138142
As you can see, for `-E` the driver creates only two jobs and stops immediately
139143
after preprocessing. The first job simply prepares the input. For `-c`, the
140144
pipeline of the created jobs is more complex:
141145
```bash
142-
flang -ccc-print-phases -c file.f
146+
flang-new -ccc-print-phases -c file.f
143147
+- 0: input, "file.f", f95-cpp-input
144148
+- 1: preprocessor, {0}, f95
145149
+- 2: compiler, {1}, ir
@@ -154,7 +158,7 @@ command to call the frontend driver is generated (more specifically, an
154158
instance of `clang::driver::Command`). Every command is bound to an instance of
155159
`clang::driver::Tool`. For Flang we introduced a specialisation of this class:
156160
`clang::driver::Flang`. This class implements the logic to either translate or
157-
forward compiler options to the frontend driver, `flang -fc1`.
161+
forward compiler options to the frontend driver, `flang-new -fc1`.
158162

159163
You can read more on the design of `clangDriver` in Clang's [Driver Design &
160164
Internals](https://clang.llvm.org/docs/DriverInternals.html).
@@ -228,12 +232,12 @@ driver, `clang -cc1` and consists of the following classes:
228232
This list is not exhaustive and only covers the main classes that implement the
229233
driver. The main entry point for the frontend driver, `fc1_main`, is
230234
implemented in `flang/tools/flang-driver/driver.cpp`. It can be accessed by
231-
invoking the compiler driver, `flang`, with the `-fc1` flag.
235+
invoking the compiler driver, `flang-new`, with the `-fc1` flag.
232236

233237
The frontend driver will only run one action at a time. If you specify multiple
234238
action flags, only the last one will be taken into account. The default action
235239
is `ParseSyntaxOnlyAction`, which corresponds to `-fsyntax-only`. In other
236-
words, `flang -fc1 <input-file>` is equivalent to `flang -fc1 -fsyntax-only
240+
words, `flang-new -fc1 <input-file>` is equivalent to `flang-new -fc1 -fsyntax-only
237241
<input-file>`.
238242

239243
## Adding new Compiler Options
@@ -258,8 +262,8 @@ similar semantics to your new option and start by copying that.
258262
For every new option, you will also have to define the visibility of the new
259263
option. This is controlled through the `Visibility` field. You can use the
260264
following Flang specific visibility flags to control this:
261-
* `FlangOption` - this option will be available in the `flang` compiler driver,
262-
* `FC1Option` - this option will be available in the `flang -fc1` frontend driver,
265+
* `FlangOption` - this option will be available in the `flang-new` compiler driver,
266+
* `FC1Option` - this option will be available in the `flang-new -fc1` frontend driver,
263267

264268
Options that are supported by clang should explicitly specify `ClangOption` in
265269
`Visibility`, and options that are only supported in Flang should not specify
@@ -286,10 +290,10 @@ The parsing will depend on the semantics encoded in the TableGen definition.
286290

287291
When adding a compiler driver option (i.e. an option that contains
288292
`FlangOption` among in it's `Visibility`) that you also intend to be understood
289-
by the frontend, make sure that it is either forwarded to `flang -fc1` or
293+
by the frontend, make sure that it is either forwarded to `flang-new -fc1` or
290294
translated into some other option that is accepted by the frontend driver. In
291295
the case of options that contain both `FlangOption` and `FC1Option` among its
292-
flags, we usually just forward from `flang` to `flang -fc1`. This is
296+
flags, we usually just forward from `flang-new` to `flang-new -fc1`. This is
293297
then tested in `flang/test/Driver/frontend-forward.F90`.
294298

295299
What follows is usually very dependant on the meaning of the corresponding
@@ -335,11 +339,11 @@ just added using your new frontend option.
335339

336340
## CMake Support
337341
As of [#7246](https://gitlab.kitware.com/cmake/cmake/-/merge_requests/7246)
338-
(CMake 3.28.0), `cmake` can detect `flang` as a
342+
(and soon to be released CMake 3.24.0), `cmake` can detect `flang-new` as a
339343
supported Fortran compiler. You can configure your CMake projects to use
340-
`flang` as follows:
344+
`flang-new` as follows:
341345
```bash
342-
cmake -DCMAKE_Fortran_COMPILER=<path/to/flang> <src/dir>
346+
cmake -DCMAKE_Fortran_COMPILER=<path/to/flang-new> <src/dir>
343347
```
344348
You should see the following in the output:
345349
```
@@ -349,14 +353,14 @@ where `<version>` corresponds to the LLVM Flang version.
349353

350354
## Testing
351355
In LIT, we define two variables that you can use to invoke Flang's drivers:
352-
* `%flang` is expanded as `flang` (i.e. the compiler driver)
353-
* `%flang_fc1` is expanded as `flang -fc1` (i.e. the frontend driver)
356+
* `%flang` is expanded as `flang-new` (i.e. the compiler driver)
357+
* `%flang_fc1` is expanded as `flang-new -fc1` (i.e. the frontend driver)
354358

355359
For most regression tests for the frontend, you will want to use `%flang_fc1`.
356360
In some cases, the observable behaviour will be identical regardless of whether
357361
`%flang` or `%flang_fc1` is used. However, when you are using `%flang` instead
358362
of `%flang_fc1`, the compiler driver will add extra flags to the frontend
359-
driver invocation (i.e. `flang -fc1 -<extra-flags>`). In some cases that might
363+
driver invocation (i.e. `flang-new -fc1 -<extra-flags>`). In some cases that might
360364
be exactly what you want to test. In fact, you can check these additional
361365
flags by using the `-###` compiler driver command line option.
362366

@@ -376,7 +380,7 @@ plugins. The process for using plugins includes:
376380
* [Creating a plugin](#creating-a-plugin)
377381
* [Loading and running a plugin](#loading-and-running-a-plugin)
378382

379-
Flang plugins are limited to `flang -fc1` and are currently only available /
383+
Flang plugins are limited to `flang-new -fc1` and are currently only available /
380384
been tested on Linux.
381385

382386
### Creating a Plugin
@@ -461,14 +465,14 @@ static FrontendPluginRegistry::Add<PrintFunctionNamesAction> X(
461465

462466
### Loading and Running a Plugin
463467
In order to use plugins, there are 2 command line options made available to the
464-
frontend driver, `flang -fc1`:
468+
frontend driver, `flang-new -fc1`:
465469
* [`-load <dsopath>`](#the--load-dsopath-option) for loading the dynamic shared
466470
object of the plugin
467471
* [`-plugin <name>`](#the--plugin-name-option) for calling the registered plugin
468472

469473
Invocation of the example plugin is done through:
470474
```bash
471-
flang -fc1 -load flangPrintFunctionNames.so -plugin print-fns file.f90
475+
flang-new -fc1 -load flangPrintFunctionNames.so -plugin print-fns file.f90
472476
```
473477

474478
Both these options are parsed in `flang/lib/Frontend/CompilerInvocation.cpp` and
@@ -489,7 +493,7 @@ reports an error diagnostic and returns `nullptr`.
489493

490494
### Enabling In-Tree Plugins
491495
For in-tree plugins, there is the CMake flag `FLANG_PLUGIN_SUPPORT`, enabled by
492-
default, that controls the exporting of executable symbols from `flang`,
496+
default, that controls the exporting of executable symbols from `flang-new`,
493497
which plugins need access to. Additionally, there is the CMake flag
494498
`LLVM_BUILD_EXAMPLES`, turned off by default, that is used to control if the
495499
example programs are built. This includes plugins that are in the
@@ -522,7 +526,7 @@ invocations `invokeFIROptEarlyEPCallbacks`, `invokeFIRInlinerCallback`, and
522526
`invokeFIROptLastEPCallbacks` for Flang drivers to be able to insert additonal
523527
passes at different points of the default pass pipeline. An example use of these
524528
extension point callbacks is shown in `registerDefaultInlinerPass` to invoke the
525-
default inliner pass in `flang`.
529+
default inliner pass in `flang-new`.
526530

527531
## LLVM Pass Plugins
528532

@@ -535,15 +539,15 @@ documentation for
535539
[`llvm::PassBuilder`](https://llvm.org/doxygen/classllvm_1_1PassBuilder.html)
536540
for details.
537541

538-
The framework to enable pass plugins in `flang` uses the exact same
542+
The framework to enable pass plugins in `flang-new` uses the exact same
539543
machinery as that used by `clang` and thus has the same capabilities and
540544
limitations.
541545

542546
In order to use a pass plugin, the pass(es) must be compiled into a dynamic
543547
shared object which is then loaded using the `-fpass-plugin` option.
544548

545549
```
546-
flang -fpass-plugin=/path/to/plugin.so <file.f90>
550+
flang-new -fpass-plugin=/path/to/plugin.so <file.f90>
547551
```
548552

549553
This option is available in both the compiler driver and the frontend driver.
@@ -555,7 +559,7 @@ Pass extensions are similar to plugins, except that they can also be linked
555559
statically. Setting `-DLLVM_${NAME}_LINK_INTO_TOOLS` to `ON` in the cmake
556560
command turns the project into a statically linked extension. An example would
557561
be Polly, e.g., using `-DLLVM_POLLY_LINK_INTO_TOOLS=ON` would link Polly passes
558-
into `flang` as built-in middle-end passes.
562+
into `flang-new` as built-in middle-end passes.
559563

560564
See the
561565
[`WritingAnLLVMNewPMPass`](https://llvm.org/docs/WritingAnLLVMNewPMPass.html#id9)

flang/docs/ImplementingASemanticCheck.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ of the call to `intentOutFunc()`:
6868

6969
I also used this program to produce a parse tree for the program using the command:
7070
```bash
71-
flang -fc1 -fdebug-dump-parse-tree testfun.f90
71+
flang-new -fc1 -fdebug-dump-parse-tree testfun.f90
7272
```
7373

7474
Here's the relevant fragment of the parse tree produced by the compiler:
@@ -296,7 +296,7 @@ In `lib/Semantics/check-do.cpp`, I added an (almost empty) implementation:
296296
I then built the compiler with these changes and ran it on my test program.
297297
This time, I made sure to invoke semantic checking. Here's the command I used:
298298
```bash
299-
flang -fc1 -fdebug-unparse-with-symbols testfun.f90
299+
flang-new -fc1 -fdebug-unparse-with-symbols testfun.f90
300300
```
301301

302302
This produced the output:

0 commit comments

Comments
 (0)