llvm/clang/test/Modules/no-local-decl-in-reduced-bmi.cppm

// Test that we won't record local declarations by default in reduced BMI.

// RUN: rm -rf %t
// RUN: split-file %s %t
// RUN: cd %t
//
// RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-reduced-module-interface -o %t/a.pcm
// RUN: llvm-bcanalyzer --dump --disable-histogram --show-binary-blobs %t/a.pcm > %t/a.dump
// RUN: cat %t/a.dump | FileCheck %t/a.cppm
//
// RUN: %clang_cc1 -std=c++20 %t/b.cppm -emit-reduced-module-interface -o %t/b.pcm
// RUN: llvm-bcanalyzer --dump --disable-histogram --show-binary-blobs %t/b.pcm > %t/b.dump
// RUN: cat %t/b.dump | FileCheck %t/b.cppm

//--- a.cppm
export module a;
export int func() {
    int v = 43;
    return 43;
}

// Test that the variable declaration is not recorded completely.
// CHECK-NOT: <DECL_VAR

//--- b.cppm
export module b;
export inline int func() {
    int v = 43;
    return v;
}

// Check that we still records the declaration from inline functions.
// CHECK: <DECL_VAR