// RUN: clang-cc -triple x86_64-apple-darwin -S -D_FORTIFY_SOURCE=2 %s -o %t.s && // RUN: FileCheck --input-file=%t.s %s #include char gbuf[63]; char *gp; void test1() { // CHECK: movabsq $59, %rdx // CHECK-NEXT: movq %rax, %rdi // CHECK-NEXT: movq %rcx, %rsi // CHECK-NEXT: call ___strcpy_chk strcpy(&gbuf[4], "Hi there"); } void test2() { // CHECK: movabsq $63, %rdx // CHECK-NEXT: movq %rax, %rdi // CHECK-NEXT: movq %rcx, %rsi // CHECK-NEXT: call ___strcpy_chk strcpy(gbuf, "Hi there"); } void test3() { // CHECK: movabsq $0, %rdx // CHECK-NEXT: movq %rax, %rdi // CHECK-NEXT: movq %rcx, %rsi // CHECK-NEXT: call ___strcpy_chk strcpy(&gbuf[100], "Hi there"); } void test4() { // CHECK: movabsq $0, %rdx // CHECK-NEXT: movq %rax, %rdi // CHECK-NEXT: movq %rcx, %rsi // CHECK-NEXT: call ___strcpy_chk strcpy((char*)(void*)&gbuf[-1], "Hi there"); } void test5() { // CHECK: call ___inline_strcpy_chk strcpy(gp, "Hi there"); } void test6() { int i; // CHECK: call ___inline_strcpy_chk strcpy((++i, gbuf), "Hi there"); }