10a996c82SOCHyams //// Explicitly enabled:
241c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
341c92c0dSOCHyams // RUN: -emit-llvm -fexperimental-assignment-tracking=enabled %s -o - -O1 \
40a996c82SOCHyams // RUN: | FileCheck %s --check-prefixes=ENABLE
541c92c0dSOCHyams
60a996c82SOCHyams //// Explicitly disabled:
741c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
841c92c0dSOCHyams // RUN: -emit-llvm %s -o - -fexperimental-assignment-tracking=disabled -O1\
90a996c82SOCHyams // RUN: | FileCheck %s --check-prefixes=DISABLE
104b6b2b1aSOCHyams
11*de6da6adSOCHyams //// Enabled by default:
1241c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
1341c92c0dSOCHyams // RUN: -emit-llvm %s -o - -O1 \
14*de6da6adSOCHyams // RUN: | FileCheck %s --check-prefixes=ENABLE
154b6b2b1aSOCHyams
1641c92c0dSOCHyams //// Disabled at O0 unless forced.
1741c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
1841c92c0dSOCHyams // RUN: -emit-llvm %s -o - -fexperimental-assignment-tracking=enabled \
1978b0689fSOCHyams // RUN: -O0 -disable-O0-optnone \
2041c92c0dSOCHyams // RUN: | FileCheck %s --check-prefixes=DISABLE
2141c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
2241c92c0dSOCHyams // RUN: -emit-llvm %s -o - -fexperimental-assignment-tracking=forced \
2378b0689fSOCHyams // RUN: -O0 -disable-O0-optnone \
2441c92c0dSOCHyams // RUN: | FileCheck %s --check-prefixes=ENABLE
254b6b2b1aSOCHyams
2641c92c0dSOCHyams //// Disabled for LTO and thinLTO unless forced.
2741c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
2841c92c0dSOCHyams // RUN: -emit-llvm %s -o - -fexperimental-assignment-tracking=enabled \
2941c92c0dSOCHyams // RUN: -O1 -flto=full \
3041c92c0dSOCHyams // RUN: | FileCheck %s --check-prefixes=DISABLE
3141c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
3241c92c0dSOCHyams // RUN: -emit-llvm %s -o - -fexperimental-assignment-tracking=enabled \
3341c92c0dSOCHyams // RUN: -O1 -flto=thin \
3441c92c0dSOCHyams // RUN: | FileCheck %s --check-prefixes=DISABLE
3541c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
3641c92c0dSOCHyams // RUN: -emit-llvm %s -o - -fexperimental-assignment-tracking=forced \
3741c92c0dSOCHyams // RUN: -O1 -flto=full \
3841c92c0dSOCHyams // RUN: | FileCheck %s --check-prefixes=ENABLE
3941c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
4041c92c0dSOCHyams // RUN: -emit-llvm %s -o - -fexperimental-assignment-tracking=forced \
4141c92c0dSOCHyams // RUN: -O1 -flto=thin \
4241c92c0dSOCHyams // RUN: | FileCheck %s --check-prefixes=ENABLE
4341c92c0dSOCHyams
4441c92c0dSOCHyams //// Disabled for LLDB debugger tuning unless forced.
4541c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
4641c92c0dSOCHyams // RUN: -emit-llvm %s -o - -fexperimental-assignment-tracking=enabled \
4741c92c0dSOCHyams // RUN: -O1 -debugger-tuning=lldb \
4841c92c0dSOCHyams // RUN: | FileCheck %s --check-prefixes=DISABLE
4941c92c0dSOCHyams // RUN: %clang_cc1 -triple x86_64-none-linux-gnu -debug-info-kind=standalone \
5041c92c0dSOCHyams // RUN: -emit-llvm %s -o - -fexperimental-assignment-tracking=forced \
5141c92c0dSOCHyams // RUN: -O1 -debugger-tuning=lldb \
5241c92c0dSOCHyams // RUN: | FileCheck %s --check-prefixes=ENABLE
5341c92c0dSOCHyams
5441c92c0dSOCHyams // Check the assignment-tracking module flag appears in the output when the
5541c92c0dSOCHyams // flag -fexperimental-assignment-tracking is set to 'enabled' (in some cases)
5641c92c0dSOCHyams // or 'forced' (always), and is does not appear when the flag is set to
5741c92c0dSOCHyams // 'disabled' (default).
5841c92c0dSOCHyams
5941c92c0dSOCHyams // ENABLE: "debug-info-assignment-tracking"
6041c92c0dSOCHyams // DISABLE-NOT: "debug-info-assignment-tracking"
6141c92c0dSOCHyams //// Check there's actually any output at all.
6241c92c0dSOCHyams // DISABLE: llvm.module.flags
634b6b2b1aSOCHyams
fun(int a)644b6b2b1aSOCHyams void fun(int a) {}
65