Index: flang/include/flang/Tools/CLOptions.inc =================================================================== --- flang/include/flang/Tools/CLOptions.inc +++ flang/include/flang/Tools/CLOptions.inc @@ -66,6 +66,8 @@ "rewrite boxed procedures"); #endif +DisableOption(ExternalNameConversion, "external-name-interop", "convert names with external convention"); + /// Generic for adding a pass to the pass manager if it is not disabled. template void addPassConditionally( @@ -139,6 +141,11 @@ } #endif +inline void addExternalNameConversionPass(mlir::PassManager &pm) { + addPassConditionally(pm, disableExternalNameConversion, + [&]() { return fir::createExternalNameConversionPass(); }); +} + /// Create a pass pipeline for running default optimization passes for /// incremental conversion of FIR. /// @@ -174,6 +181,7 @@ pm.addNestedPass(fir::createAbstractResultOptPass()); fir::addCodeGenRewritePass(pm); fir::addTargetRewritePass(pm); + fir::addExternalNameConversionPass(pm); fir::addFIRToLLVMPass(pm); } Index: flang/test/Lower/common-block.f90 =================================================================== --- flang/test/Lower/common-block.f90 +++ flang/test/Lower/common-block.f90 @@ -1,4 +1,4 @@ -! RUN: bbc %s -o - | tco | FileCheck %s +! RUN: bbc %s -o - | tco -disable-external-name-interop | FileCheck %s ! CHECK: @_QB = common global [8 x i8] zeroinitializer ! CHECK: @_QBx = global { float, float } { float 1.0{{.*}}, float 2.0{{.*}} }