https://github.com/shivaramaarao updated 
https://github.com/llvm/llvm-project/pull/230007

>From 2ead25437b97598a0dabe3a2343218c8d2fd049a Mon Sep 17 00:00:00 2001
From: Shivarama Rao <[email protected]>
Date: Thu, 8 Oct 2026 12:32:21 +0530
Subject: [PATCH 1/3] [flang] Add -f[no]keep-inline-functions option

Treat definitions marked alwaysinline (!dir$ inlinealways) as the functions 
inlined, and
keep those definitions after they are inlined into every caller.

Restrict definition retention to the current translation unit, ensuring
that definitions from linked bitcode (BC) files are not preserved.

added testcases to test this functionality.

Assisted by Cursor to generate the testcases.

Fixes #223359
---
 clang/include/clang/Options/Options.td        |  4 +-
 clang/lib/Driver/ToolChains/Flang.cpp         |  2 +
 .../include/flang/Frontend/CodeGenOptions.def |  1 +
 flang/lib/Frontend/CompilerInvocation.cpp     |  4 ++
 flang/lib/Frontend/FrontendActions.cpp        | 23 ++++++++
 .../keep-inline-functions-link.f90            | 33 ++++++++++++
 .../Integration/keep-inline-functions.f90     | 52 +++++++++++++++++++
 flang/test/Integration/keep-inline-lib.f90    |  6 +++
 8 files changed, 123 insertions(+), 2 deletions(-)
 create mode 100644 flang/test/Integration/keep-inline-functions-link.f90
 create mode 100644 flang/test/Integration/keep-inline-functions.f90
 create mode 100644 flang/test/Integration/keep-inline-lib.f90

diff --git a/clang/include/clang/Options/Options.td 
b/clang/include/clang/Options/Options.td
index 56194af32f68f3..72a0a0ee05c95c 100644
--- a/clang/include/clang/Options/Options.td
+++ b/clang/include/clang/Options/Options.td
@@ -2598,8 +2598,8 @@ defm keep_persistent_storage_variables : 
BoolFOption<"keep-persistent-storage-va
           " keeping all variables that have a persistent storage duration, 
including global, static and thread-local variables, to guarantee that they can 
be directly addressed">>;
 defm keep_inline_functions : BoolFOption<"keep-inline-functions",
   CodeGenOpts<"KeepInlineFunctions">, DefaultFalse,
-  PosFlag<SetTrue, [], [ClangOption, CC1Option], "Keep">,
-  NegFlag<SetFalse, [], [ClangOption], "Don't keep">,
+  PosFlag<SetTrue, [], [ClangOption, CC1Option, FlangOption, FC1Option], 
"Keep">,
+  NegFlag<SetFalse, [], [ClangOption, FlangOption], "Don't keep">,
   BothFlags<[], [],
           " inline functions whose definition is owned by this translation 
unit, even if they are inlined into all callers.">>;
 defm fixed_point : BoolFOption<"fixed-point",
diff --git a/clang/lib/Driver/ToolChains/Flang.cpp 
b/clang/lib/Driver/ToolChains/Flang.cpp
index 0e6858d3bb6452..4f64b3ba050c1b 100644
--- a/clang/lib/Driver/ToolChains/Flang.cpp
+++ b/clang/lib/Driver/ToolChains/Flang.cpp
@@ -355,6 +355,8 @@ void Flang::addCodegenOptions(const ArgList &Args,
 
   Args.addOptInFlag(CmdArgs, options::OPT_fexperimental_loop_fusion,
                     options::OPT_fno_experimental_loop_fusion);
+  Args.addOptInFlag(CmdArgs, options::OPT_fkeep_inline_functions,
+                    options::OPT_fno_keep_inline_functions);
   Args.AddLastArg(CmdArgs, options::OPT_ffp_sum_reassociation,
                   options::OPT_fno_fp_sum_reassociation);
 
diff --git a/flang/include/flang/Frontend/CodeGenOptions.def 
b/flang/include/flang/Frontend/CodeGenOptions.def
index d49a7f3647eec5..4cc8cbd008d8a3 100644
--- a/flang/include/flang/Frontend/CodeGenOptions.def
+++ b/flang/include/flang/Frontend/CodeGenOptions.def
@@ -30,6 +30,7 @@ ENUM_CODEGENOPT(ProfileInstr, llvm::driver::ProfileInstrKind, 
2, llvm::driver::P
 /// Choose profile kind for PGO use compilation.
 ENUM_CODEGENOPT(ProfileUse, llvm::driver::ProfileInstrKind, 2, 
llvm::driver::ProfileInstrKind::ProfileNone)
 
+CODEGENOPT(KeepInlineFunctions, 1, 0) ///< -fkeep-inline-functions.
 CODEGENOPT(InstrumentFunctions, 1, 0) ///< Set when -finstrument_functions is
                                       ///< enabled on the compile step.
 
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp 
b/flang/lib/Frontend/CompilerInvocation.cpp
index b76b38ff6497f7..9e5d805f4ca683 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -380,6 +380,10 @@ static void 
parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
   if (args.hasArg(clang::options::OPT_finstrument_functions))
     opts.InstrumentFunctions = 1;
 
+  // -fkeep-inline-functions. The driver forwards only the positive flag.
+  opts.KeepInlineFunctions =
+      args.hasArg(clang::options::OPT_fkeep_inline_functions);
+
   // -fno-integrated-as: emit GNU Assembler compatible assembly.
   if (!args.hasFlag(clang::options::OPT_fintegrated_as,
                     clang::options::OPT_fno_integrated_as, true))
diff --git a/flang/lib/Frontend/FrontendActions.cpp 
b/flang/lib/Frontend/FrontendActions.cpp
index 35c2b9ec881e8d..214408b92efc12 100644
--- a/flang/lib/Frontend/FrontendActions.cpp
+++ b/flang/lib/Frontend/FrontendActions.cpp
@@ -1430,6 +1430,29 @@ void CodeGenAction::executeAction() {
   llvmModule->setTargetTriple(theTriple);
   llvmModule->setDataLayout(targetMachine.createDataLayout());
 
+  // -fkeep-inline-functions: retain definitions of inline functions (those
+  // marked alwaysinline) after they have been inlined into every caller.
+  // On ELF this uses llvm.compiler.used so the compiler keeps the definition
+  // but the linker may still drop it. Other object formats use llvm.used.
+  // This is matching Clang functionality.Only functions defined in this
+  // translation unit are considered.
+  if (codeGenOpts.KeepInlineFunctions) {
+    llvm::SmallVector<llvm::GlobalValue *, 8> kept;
+    for (llvm::Function &func : *llvmModule) {
+      if (func.isDeclaration() || func.hasAvailableExternallyLinkage())
+        continue;
+      if (!func.hasFnAttribute(llvm::Attribute::AlwaysInline))
+        continue;
+      kept.push_back(&func);
+    }
+    if (!kept.empty()) {
+      if (theTriple.isOSBinFormatELF())
+        llvm::appendToCompilerUsed(*llvmModule, kept);
+      else
+        llvm::appendToUsed(*llvmModule, kept);
+    }
+  }
+
   // Link in builtin bitcode libraries
   if (!codeGenOpts.BuiltinBCLibs.empty())
     linkBuiltinBCLibs();
diff --git a/flang/test/Integration/keep-inline-functions-link.f90 
b/flang/test/Integration/keep-inline-functions-link.f90
new file mode 100644
index 00000000000000..1cf7a978b706f3
--- /dev/null
+++ b/flang/test/Integration/keep-inline-functions-link.f90
@@ -0,0 +1,33 @@
+! -fkeep-inline-functions must only record alwaysinline definitions that
+! belong to this translation unit. A builtin bitcode library brought in via
+! -mlink-builtin-bitcode can itself contain an alwaysinline function (for
+! its own, unrelated reasons); that function was never named by a
+! !DIR$ INLINEALWAYS in this file and must not be added to llvm.used /
+! llvm.compiler.used because of this flag. This requires the check to run
+! before the builtin bitcode library is linked into the module.
+
+! RUN: %flang -emit-llvm -c -o %t.bc %S/keep-inline-lib.f90
+! RUN: %flang_fc1 -emit-llvm -O2 -fkeep-inline-functions 
-mlink-builtin-bitcode %t.bc -o - %s | FileCheck %s
+
+program main
+  external lib_add_two
+  integer :: lib_add_two
+  integer :: n
+  n = lib_add_two(5)
+  n = own_add_three(n)
+  print *, n
+contains
+  integer function own_add_three(n)
+    !dir$ inlinealways own_add_three
+    integer :: n
+    own_add_three = n + 3
+  end function
+end program
+
+! The list has exactly one entry: this translation unit's own
+! own_add_three, and not the linked library's lib_add_two.
+! CHECK: @llvm.{{(compiler.)?}}used = appending global [1 x ptr] [ptr 
@_QFPown_add_three]
+
+! lib_add_two (from the linked bitcode library) is still called, unaffected
+! by the flag.
+! CHECK: call {{.*}}@lib_add_two_(
diff --git a/flang/test/Integration/keep-inline-functions.f90 
b/flang/test/Integration/keep-inline-functions.f90
new file mode 100644
index 00000000000000..270edcc2471d7b
--- /dev/null
+++ b/flang/test/Integration/keep-inline-functions.f90
@@ -0,0 +1,52 @@
+! RUN: %flang -### -fkeep-inline-functions %s 2>&1 | FileCheck %s 
--check-prefix=DRIVER-KEEP
+! Neither flag is the default: the driver forwards nothing to fc1.
+! RUN: %flang -### %s 2>&1 | FileCheck %s --check-prefix=DRIVER-NOKEEP
+! RUN: %flang -### -fno-keep-inline-functions %s 2>&1 | FileCheck %s 
--check-prefix=DRIVER-NOKEEP
+! RUN: %flang -### -fkeep-inline-functions -fno-keep-inline-functions %s 2>&1 
| FileCheck %s --check-prefix=DRIVER-NOKEEP
+! RUN: %flang -### -fno-keep-inline-functions -fkeep-inline-functions %s 2>&1 
| FileCheck %s --check-prefix=DRIVER-KEEP
+
+! DRIVER-KEEP: "-fc1"
+! DRIVER-KEEP-SAME: "-fkeep-inline-functions"
+! DRIVER-NOKEEP: "-fc1"
+! DRIVER-NOKEEP-NOT: "-fkeep-inline-functions"
+! DRIVER-NOKEEP-NOT: "-fno-keep-inline-functions"
+
+! Without the flag, an alwaysinline contained procedure is inlined and deleted.
+! RUN: %flang_fc1 -emit-llvm -O2 -o - %s | FileCheck %s --check-prefix=DEFAULT
+! -fkeep-inline-functions retains that definition, matching Clang's retention
+! of inline functions owned by this translation unit.
+! RUN: %flang_fc1 -emit-llvm -O2 -fkeep-inline-functions -o - %s | FileCheck 
%s --check-prefix=KEEP
+
+subroutine test_always(n)
+  integer :: n
+  n = add_two(n)
+contains
+  integer function add_two(n)
+    !dir$ inlinealways add_two
+    integer :: n
+    add_two = n + 2
+  end function
+end subroutine
+
+subroutine test_plain(n)
+  integer :: n
+  n = add_one(n)
+contains
+  integer function add_one(n)
+    integer :: n
+    add_one = n + 1
+  end function
+end subroutine
+
+! DEFAULT-LABEL: define void @test_always_(
+! DEFAULT-NOT: @_QFtest_alwaysPadd_two(
+! DEFAULT-NOT: define {{.*}}@_QFtest_alwaysPadd_two(
+
+! KEEP: @llvm.{{(compiler.)?}}used = {{.*}}@_QFtest_alwaysPadd_two
+! KEEP-LABEL: define void @test_always_(
+! KEEP-NOT: call {{.*}}@_QFtest_alwaysPadd_two(
+! KEEP: define internal {{.*}}@_QFtest_alwaysPadd_two(
+! A contained procedure that is not marked inline is still deleted.
+! KEEP-LABEL: define void @test_plain_(
+! KEEP-NOT: @_QFtest_plainPadd_one(
+! KEEP-NOT: define {{.*}}@_QFtest_plainPadd_one(
diff --git a/flang/test/Integration/keep-inline-lib.f90 
b/flang/test/Integration/keep-inline-lib.f90
new file mode 100644
index 00000000000000..7a3ed61a9faeba
--- /dev/null
+++ b/flang/test/Integration/keep-inline-lib.f90
@@ -0,0 +1,6 @@
+! RUN: :
+integer function lib_add_two(n)
+  !dir$ inlinealways lib_add_two
+  integer :: n
+  lib_add_two = n + 2
+end function

>From 25b303e583e6064393fda5d85f3a136d46251f28 Mon Sep 17 00:00:00 2001
From: Shivarama Rao <[email protected]>
Date: Sat, 17 Oct 2026 12:08:49 +0530
Subject: [PATCH 2/3] [flang] Test -fkeep-inline-functions without a driver
 warning.

Accept both -fkeep-inline-functions and -fno-keep-inline-functions silently,
and keep the bitcode helper under Inputs so lit does not run it as its own test.

Co-authored-by: Cursor <[email protected]>
---
 flang/test/Driver/flang-f-opts.f90                   | 12 ++++++++++++
 .../Integration/{ => Inputs}/keep-inline-lib.f90     |  1 -
 .../Integration/{inputs => Inputs}/pgo-sample.prof   |  0
 .../test/Integration/keep-inline-functions-link.f90  |  6 +-----
 flang/test/Integration/profile-sample-use.f90        |  2 +-
 5 files changed, 14 insertions(+), 7 deletions(-)
 rename flang/test/Integration/{ => Inputs}/keep-inline-lib.f90 (92%)
 rename flang/test/Integration/{inputs => Inputs}/pgo-sample.prof (100%)

diff --git a/flang/test/Driver/flang-f-opts.f90 
b/flang/test/Driver/flang-f-opts.f90
index 67fe8b7fab814c..315969fc447a24 100644
--- a/flang/test/Driver/flang-f-opts.f90
+++ b/flang/test/Driver/flang-f-opts.f90
@@ -165,3 +165,15 @@
 ! CHECK-WARNING-DAG: optimization flag '-ftree-ter' is not supported
 ! CHECK-WARNING-DAG: optimization flag '-ftree-vrp' is not supported
 ! CHECK-WARNING-DAG: optimization flag '-fno-devirtualize' is not supported
+!
+! 
------------------------------------------------------------------------------
+! Unlike the gfortran-specific optimization flags above, 
-fkeep-inline-functions
+! and -fno-keep-inline-functions are implemented by Flang, so using them must
+! not produce the "optimization flag ... is not supported" warning, or any
+! other warning.
+! RUN: %flang -### -fkeep-inline-functions %s 2>&1 \
+! RUN:     | FileCheck %s -check-prefix=KEEP-INLINE-FUNCTIONS-NOWARN
+! RUN: %flang -### -fno-keep-inline-functions %s 2>&1 \
+! RUN:     | FileCheck %s -check-prefix=KEEP-INLINE-FUNCTIONS-NOWARN
+! KEEP-INLINE-FUNCTIONS-NOWARN-NOT: warning:
+! KEEP-INLINE-FUNCTIONS-NOWARN: "-fc1"
diff --git a/flang/test/Integration/keep-inline-lib.f90 
b/flang/test/Integration/Inputs/keep-inline-lib.f90
similarity index 92%
rename from flang/test/Integration/keep-inline-lib.f90
rename to flang/test/Integration/Inputs/keep-inline-lib.f90
index 7a3ed61a9faeba..6bdd17faf26f56 100644
--- a/flang/test/Integration/keep-inline-lib.f90
+++ b/flang/test/Integration/Inputs/keep-inline-lib.f90
@@ -1,4 +1,3 @@
-! RUN: :
 integer function lib_add_two(n)
   !dir$ inlinealways lib_add_two
   integer :: n
diff --git a/flang/test/Integration/inputs/pgo-sample.prof 
b/flang/test/Integration/Inputs/pgo-sample.prof
similarity index 100%
rename from flang/test/Integration/inputs/pgo-sample.prof
rename to flang/test/Integration/Inputs/pgo-sample.prof
diff --git a/flang/test/Integration/keep-inline-functions-link.f90 
b/flang/test/Integration/keep-inline-functions-link.f90
index 1cf7a978b706f3..ebe47cfd79cc27 100644
--- a/flang/test/Integration/keep-inline-functions-link.f90
+++ b/flang/test/Integration/keep-inline-functions-link.f90
@@ -6,7 +6,7 @@
 ! llvm.compiler.used because of this flag. This requires the check to run
 ! before the builtin bitcode library is linked into the module.
 
-! RUN: %flang -emit-llvm -c -o %t.bc %S/keep-inline-lib.f90
+! RUN: %flang -emit-llvm -c -o %t.bc %S/Inputs/keep-inline-lib.f90
 ! RUN: %flang_fc1 -emit-llvm -O2 -fkeep-inline-functions 
-mlink-builtin-bitcode %t.bc -o - %s | FileCheck %s
 
 program main
@@ -27,7 +27,3 @@ integer function own_add_three(n)
 ! The list has exactly one entry: this translation unit's own
 ! own_add_three, and not the linked library's lib_add_two.
 ! CHECK: @llvm.{{(compiler.)?}}used = appending global [1 x ptr] [ptr 
@_QFPown_add_three]
-
-! lib_add_two (from the linked bitcode library) is still called, unaffected
-! by the flag.
-! CHECK: call {{.*}}@lib_add_two_(
diff --git a/flang/test/Integration/profile-sample-use.f90 
b/flang/test/Integration/profile-sample-use.f90
index 6292ef817077c8..8c377eca2ba9d3 100644
--- a/flang/test/Integration/profile-sample-use.f90
+++ b/flang/test/Integration/profile-sample-use.f90
@@ -1,5 +1,5 @@
 ! Test to check the working of option "-fprofile-sample-use".
-! RUN: %flang_fc1 -emit-llvm -debug-info-kind=standalone 
-fprofile-sample-use=%S/inputs/pgo-sample.prof -o - %s | FileCheck %s
+! RUN: %flang_fc1 -emit-llvm -debug-info-kind=standalone 
-fprofile-sample-use=%S/Inputs/pgo-sample.prof -o - %s | FileCheck %s
 
 ! CHECK: attributes #[[A:.*]] = { {{.*}}"use-sample-profile"{{.*}} }
 ! CHECK: !{i32 {{.*}}, !"ProfileSummary"{{.*}}}

>From 1b240c73d8a00e8520151de90211a5c5e7be3fb4 Mon Sep 17 00:00:00 2001
From: Shivarama Rao <[email protected]>
Date: Sat, 17 Oct 2026 13:22:05 +0530
Subject: [PATCH 3/3] [flang] Address review comments on
 -fkeep-inline-functions tests.

Move the -### driver-forwarding and no-warning checks for
-f[no]keep-inline-functions out of 
flang/test/Integration/keep-inline-functions.f90
and into flang/test/Driver/flang-f-opts.f90, next to the other driver-only
checks; that file keeps only the -O2 IR checks.

Replace the DEFAULT-NOT/KEEP-NOT checks that follow a -LABEL match (which
only look at the output after that label) with --implicit-check-not on the
procedure names, so the whole output is checked.

Co-authored-by: Cursor <[email protected]>
---
 flang/test/Driver/flang-f-opts.f90            | 23 ++++++++++++------
 .../Integration/keep-inline-functions.f90     | 24 +++++--------------
 2 files changed, 22 insertions(+), 25 deletions(-)

diff --git a/flang/test/Driver/flang-f-opts.f90 
b/flang/test/Driver/flang-f-opts.f90
index 315969fc447a24..153082bc2c9889 100644
--- a/flang/test/Driver/flang-f-opts.f90
+++ b/flang/test/Driver/flang-f-opts.f90
@@ -170,10 +170,19 @@
 ! Unlike the gfortran-specific optimization flags above, 
-fkeep-inline-functions
 ! and -fno-keep-inline-functions are implemented by Flang, so using them must
 ! not produce the "optimization flag ... is not supported" warning, or any
-! other warning.
-! RUN: %flang -### -fkeep-inline-functions %s 2>&1 \
-! RUN:     | FileCheck %s -check-prefix=KEEP-INLINE-FUNCTIONS-NOWARN
-! RUN: %flang -### -fno-keep-inline-functions %s 2>&1 \
-! RUN:     | FileCheck %s -check-prefix=KEEP-INLINE-FUNCTIONS-NOWARN
-! KEEP-INLINE-FUNCTIONS-NOWARN-NOT: warning:
-! KEEP-INLINE-FUNCTIONS-NOWARN: "-fc1"
+! other warning. Neither flag is the default: the driver forwards nothing to
+! fc1 unless -fkeep-inline-functions wins.
+! RUN: %flang -### -fkeep-inline-functions %s 2>&1 | FileCheck %s 
--check-prefix=DRIVER-KEEP
+! RUN: %flang -### %s 2>&1 | FileCheck %s --check-prefix=DRIVER-NOKEEP
+! RUN: %flang -### -fno-keep-inline-functions %s 2>&1 | FileCheck %s 
--check-prefix=DRIVER-NOKEEP
+! RUN: %flang -### -fkeep-inline-functions -fno-keep-inline-functions %s 2>&1 
| FileCheck %s --check-prefix=DRIVER-NOKEEP
+! RUN: %flang -### -fno-keep-inline-functions -fkeep-inline-functions %s 2>&1 
| FileCheck %s --check-prefix=DRIVER-KEEP
+
+! DRIVER-KEEP-NOT: warning:
+! DRIVER-KEEP: "-fc1"
+! DRIVER-KEEP-SAME: "-fkeep-inline-functions"
+
+! DRIVER-NOKEEP-NOT: warning:
+! DRIVER-NOKEEP: "-fc1"
+! DRIVER-NOKEEP-NOT: "-fkeep-inline-functions"
+! DRIVER-NOKEEP-NOT: "-fno-keep-inline-functions"
diff --git a/flang/test/Integration/keep-inline-functions.f90 
b/flang/test/Integration/keep-inline-functions.f90
index 270edcc2471d7b..b349683aa12ede 100644
--- a/flang/test/Integration/keep-inline-functions.f90
+++ b/flang/test/Integration/keep-inline-functions.f90
@@ -1,21 +1,13 @@
-! RUN: %flang -### -fkeep-inline-functions %s 2>&1 | FileCheck %s 
--check-prefix=DRIVER-KEEP
-! Neither flag is the default: the driver forwards nothing to fc1.
-! RUN: %flang -### %s 2>&1 | FileCheck %s --check-prefix=DRIVER-NOKEEP
-! RUN: %flang -### -fno-keep-inline-functions %s 2>&1 | FileCheck %s 
--check-prefix=DRIVER-NOKEEP
-! RUN: %flang -### -fkeep-inline-functions -fno-keep-inline-functions %s 2>&1 
| FileCheck %s --check-prefix=DRIVER-NOKEEP
-! RUN: %flang -### -fno-keep-inline-functions -fkeep-inline-functions %s 2>&1 
| FileCheck %s --check-prefix=DRIVER-KEEP
-
-! DRIVER-KEEP: "-fc1"
-! DRIVER-KEEP-SAME: "-fkeep-inline-functions"
-! DRIVER-NOKEEP: "-fc1"
-! DRIVER-NOKEEP-NOT: "-fkeep-inline-functions"
-! DRIVER-NOKEEP-NOT: "-fno-keep-inline-functions"
+! The driver-only checks (-### forwarding, no warning) live in
+! flang/test/Driver/flang-f-opts.f90; this file checks the generated IR.
 
 ! Without the flag, an alwaysinline contained procedure is inlined and deleted.
-! RUN: %flang_fc1 -emit-llvm -O2 -o - %s | FileCheck %s --check-prefix=DEFAULT
+! RUN: %flang_fc1 -emit-llvm -O2 -o - %s | FileCheck %s --check-prefix=DEFAULT 
\
+! RUN:     --implicit-check-not="@_QFtest_alwaysPadd_two("
 ! -fkeep-inline-functions retains that definition, matching Clang's retention
 ! of inline functions owned by this translation unit.
-! RUN: %flang_fc1 -emit-llvm -O2 -fkeep-inline-functions -o - %s | FileCheck 
%s --check-prefix=KEEP
+! RUN: %flang_fc1 -emit-llvm -O2 -fkeep-inline-functions -o - %s | FileCheck 
%s --check-prefix=KEEP \
+! RUN:     --implicit-check-not="@_QFtest_plainPadd_one("
 
 subroutine test_always(n)
   integer :: n
@@ -39,8 +31,6 @@ integer function add_one(n)
 end subroutine
 
 ! DEFAULT-LABEL: define void @test_always_(
-! DEFAULT-NOT: @_QFtest_alwaysPadd_two(
-! DEFAULT-NOT: define {{.*}}@_QFtest_alwaysPadd_two(
 
 ! KEEP: @llvm.{{(compiler.)?}}used = {{.*}}@_QFtest_alwaysPadd_two
 ! KEEP-LABEL: define void @test_always_(
@@ -48,5 +38,3 @@ integer function add_one(n)
 ! KEEP: define internal {{.*}}@_QFtest_alwaysPadd_two(
 ! A contained procedure that is not marked inline is still deleted.
 ! KEEP-LABEL: define void @test_plain_(
-! KEEP-NOT: @_QFtest_plainPadd_one(
-! KEEP-NOT: define {{.*}}@_QFtest_plainPadd_one(

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to