alvinhochun updated this revision to Diff 454280. alvinhochun added a comment.
Specify x86_64-w64-windows-gnu in tests instead of using %itanium_abi_triple because it doesn't work on Linux. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D132302/new/ https://reviews.llvm.org/D132302 Files: clang/include/clang/Basic/Attr.td clang/test/CodeGen/guard_nocf.c clang/test/CodeGenCXX/guard_nocf.cpp clang/test/Misc/pragma-attribute-supported-attributes-list.test clang/test/Sema/attr-guard_nocf.c Index: clang/test/Sema/attr-guard_nocf.c =================================================================== --- clang/test/Sema/attr-guard_nocf.c +++ clang/test/Sema/attr-guard_nocf.c @@ -1,5 +1,10 @@ // RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -verify -fsyntax-only %s // RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -verify -std=c++11 -fsyntax-only -x c++ %s +// RUN: %clang_cc1 -triple x86_64-w64-windows-gnu -verify -fsyntax-only %s +// RUN: %clang_cc1 -triple x86_64-w64-windows-gnu -verify -std=c++11 -fsyntax-only -x c++ %s + +// The x86_64-w64-windows-gnu version tests mingw target, which relies on +// __declspec(...) being defined as __attribute__((...)) by compiler built-in. // Function definition. __declspec(guard(nocf)) void testGuardNoCF(void) { // no warning Index: clang/test/Misc/pragma-attribute-supported-attributes-list.test =================================================================== --- clang/test/Misc/pragma-attribute-supported-attributes-list.test +++ clang/test/Misc/pragma-attribute-supported-attributes-list.test @@ -26,6 +26,7 @@ // CHECK-NEXT: BuiltinAlias (SubjectMatchRule_function) // CHECK-NEXT: CFAuditedTransfer (SubjectMatchRule_function) // CHECK-NEXT: CFConsumed (SubjectMatchRule_variable_is_parameter) +// CHECK-NEXT: CFGuard (SubjectMatchRule_function) // CHECK-NEXT: CFICanonicalJumpTable (SubjectMatchRule_function) // CHECK-NEXT: CFUnknownTransfer (SubjectMatchRule_function) // CHECK-NEXT: CPUDispatch (SubjectMatchRule_function) Index: clang/test/CodeGenCXX/guard_nocf.cpp =================================================================== --- clang/test/CodeGenCXX/guard_nocf.cpp +++ clang/test/CodeGenCXX/guard_nocf.cpp @@ -1,4 +1,8 @@ // RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -std=c++11 -emit-llvm -O2 -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-w64-windows-gnu -std=c++11 -emit-llvm -O2 -o - %s | FileCheck %s + +// The x86_64-w64-windows-gnu version tests mingw target, which relies on +// __declspec(...) being defined as __attribute__((...)) by compiler built-in. void target_func(); void (*func_ptr)() = &target_func; Index: clang/test/CodeGen/guard_nocf.c =================================================================== --- clang/test/CodeGen/guard_nocf.c +++ clang/test/CodeGen/guard_nocf.c @@ -1,4 +1,8 @@ // RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -emit-llvm -O2 -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-w64-windows-gnu -emit-llvm -O2 -o - %s | FileCheck %s + +// The x86_64-w64-windows-gnu version tests mingw target, which relies on +// __declspec(...) being defined as __attribute__((...)) by compiler built-in. void target_func(void); void (*func_ptr)(void) = &target_func; Index: clang/include/clang/Basic/Attr.td =================================================================== --- clang/include/clang/Basic/Attr.td +++ clang/include/clang/Basic/Attr.td @@ -3493,7 +3493,7 @@ def CFGuard : InheritableAttr { // Currently only the __declspec(guard(nocf)) modifier is supported. In future // we might also want to support __declspec(guard(suppress)). - let Spellings = [Declspec<"guard">]; + let Spellings = [Declspec<"guard">, GCC<"guard">]; let Subjects = SubjectList<[Function]>; let Args = [EnumArgument<"Guard", "GuardArg", ["nocf"], ["nocf"]>]; let Documentation = [CFGuardDocs];
Index: clang/test/Sema/attr-guard_nocf.c =================================================================== --- clang/test/Sema/attr-guard_nocf.c +++ clang/test/Sema/attr-guard_nocf.c @@ -1,5 +1,10 @@ // RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -verify -fsyntax-only %s // RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -verify -std=c++11 -fsyntax-only -x c++ %s +// RUN: %clang_cc1 -triple x86_64-w64-windows-gnu -verify -fsyntax-only %s +// RUN: %clang_cc1 -triple x86_64-w64-windows-gnu -verify -std=c++11 -fsyntax-only -x c++ %s + +// The x86_64-w64-windows-gnu version tests mingw target, which relies on +// __declspec(...) being defined as __attribute__((...)) by compiler built-in. // Function definition. __declspec(guard(nocf)) void testGuardNoCF(void) { // no warning Index: clang/test/Misc/pragma-attribute-supported-attributes-list.test =================================================================== --- clang/test/Misc/pragma-attribute-supported-attributes-list.test +++ clang/test/Misc/pragma-attribute-supported-attributes-list.test @@ -26,6 +26,7 @@ // CHECK-NEXT: BuiltinAlias (SubjectMatchRule_function) // CHECK-NEXT: CFAuditedTransfer (SubjectMatchRule_function) // CHECK-NEXT: CFConsumed (SubjectMatchRule_variable_is_parameter) +// CHECK-NEXT: CFGuard (SubjectMatchRule_function) // CHECK-NEXT: CFICanonicalJumpTable (SubjectMatchRule_function) // CHECK-NEXT: CFUnknownTransfer (SubjectMatchRule_function) // CHECK-NEXT: CPUDispatch (SubjectMatchRule_function) Index: clang/test/CodeGenCXX/guard_nocf.cpp =================================================================== --- clang/test/CodeGenCXX/guard_nocf.cpp +++ clang/test/CodeGenCXX/guard_nocf.cpp @@ -1,4 +1,8 @@ // RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -std=c++11 -emit-llvm -O2 -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-w64-windows-gnu -std=c++11 -emit-llvm -O2 -o - %s | FileCheck %s + +// The x86_64-w64-windows-gnu version tests mingw target, which relies on +// __declspec(...) being defined as __attribute__((...)) by compiler built-in. void target_func(); void (*func_ptr)() = &target_func; Index: clang/test/CodeGen/guard_nocf.c =================================================================== --- clang/test/CodeGen/guard_nocf.c +++ clang/test/CodeGen/guard_nocf.c @@ -1,4 +1,8 @@ // RUN: %clang_cc1 -triple %ms_abi_triple -fms-extensions -emit-llvm -O2 -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-w64-windows-gnu -emit-llvm -O2 -o - %s | FileCheck %s + +// The x86_64-w64-windows-gnu version tests mingw target, which relies on +// __declspec(...) being defined as __attribute__((...)) by compiler built-in. void target_func(void); void (*func_ptr)(void) = &target_func; Index: clang/include/clang/Basic/Attr.td =================================================================== --- clang/include/clang/Basic/Attr.td +++ clang/include/clang/Basic/Attr.td @@ -3493,7 +3493,7 @@ def CFGuard : InheritableAttr { // Currently only the __declspec(guard(nocf)) modifier is supported. In future // we might also want to support __declspec(guard(suppress)). - let Spellings = [Declspec<"guard">]; + let Spellings = [Declspec<"guard">, GCC<"guard">]; let Subjects = SubjectList<[Function]>; let Args = [EnumArgument<"Guard", "GuardArg", ["nocf"], ["nocf"]>]; let Documentation = [CFGuardDocs];
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits