// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -ftrap-function=trap_func -fclangir -emit-cir %s -o %t.cir // RUN: FileCheck --input-file=%t.cir %s -check-prefix=CIR // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -ftrap-function=trap_func -fclangir -emit-llvm %s -o %t.ll // RUN: FileCheck --input-file=%t.ll %s -check-prefix=LLVM // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -ftrap-function=trap_func -emit-llvm %s -o %t.ll // RUN: FileCheck --input-file=%t.ll %s -check-prefix=LLVM extern "C" { void normal() {} // CIR: cir.func{{.*}}@normal() // CIR-NOT: trap_func_name // LLVM: define{{.*}}@normal() #[[FUNC_ATTR:.*]] { void trap_func(){} // CIR: cir.func{{.*}}@trap_func() // CIR-NOT: trap_func_name // LLVM: define{{.*}}@trap_func() #[[FUNC_ATTR]] { void caller() { normal(); // CIR: cir.call{{.*}}normal() // CIR-SAME: trap_func_name = "trap_func" // LLVM: call void{{.*}} @normal() #[[CALL_ATTR:.*]] trap_func(); // CIR: cir.call{{.*}}trap_func() // CIR-SAME: trap_func_name = "trap_func" // LLVM: call void{{.*}} @trap_func() #[[CALL_ATTR]] } } // LLVM: attributes #[[FUNC_ATTR]] // LLVM-NOT: trap-func-name // LLVM: attributes #[[CALL_ATTR]] // LLVM-SAME: "trap-func-name"="trap_func"