1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm -disable-red-zone -femit-coverage-data %s -o - | FileCheck %s 2*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm -disable-red-zone -femit-coverage-data -coverage-no-function-names-in-data %s -o - | FileCheck %s --check-prefix WITHOUTNAMES 3*67e74705SXin Li 4*67e74705SXin Li // <rdar://problem/12843084> 5*67e74705SXin Li test1(int a)6*67e74705SXin Liint test1(int a) { 7*67e74705SXin Li switch (a % 2) { 8*67e74705SXin Li case 0: 9*67e74705SXin Li ++a; 10*67e74705SXin Li case 1: 11*67e74705SXin Li a /= 2; 12*67e74705SXin Li } 13*67e74705SXin Li return a; 14*67e74705SXin Li } 15*67e74705SXin Li 16*67e74705SXin Li // Check that the noredzone flag is set on the generated functions. 17*67e74705SXin Li 18*67e74705SXin Li // CHECK: void @__llvm_gcov_indirect_counter_increment(i32* %{{.*}}, i64** %{{.*}}) unnamed_addr [[NRZ:#[0-9]+]] 19*67e74705SXin Li 20*67e74705SXin Li // Inside llvm_gcov_writeout, check that -coverage-no-function-names-in-data 21*67e74705SXin Li // passes null as the function name. 22*67e74705SXin Li // CHECK: void @__llvm_gcov_writeout() unnamed_addr [[NRZ]] 23*67e74705SXin Li // CHECK: call void @llvm_gcda_emit_function({{.*}}, i8* getelementptr {{.*}}, {{.*}}) 24*67e74705SXin Li // WITHOUTNAMES: void @__llvm_gcov_writeout() unnamed_addr 25*67e74705SXin Li // WITHOUTNAMES: call void @llvm_gcda_emit_function({{.*}}, i8* null, {{.*}}) 26*67e74705SXin Li 27*67e74705SXin Li // CHECK: void @__llvm_gcov_flush() unnamed_addr [[NRZ]] 28*67e74705SXin Li // CHECK: void @__llvm_gcov_init() unnamed_addr [[NRZ]] 29*67e74705SXin Li 30*67e74705SXin Li // CHECK: attributes [[NRZ]] = { {{.*}}noredzone{{.*}} } 31