Skip to content

Conversation

@ojhunt
Copy link
Contributor

@ojhunt ojhunt commented May 9, 2025

Forgot to actually add the test as part of the __ptrauth on intptr PR

@llvmbot llvmbot added the clang Clang issues not falling into any other category label May 9, 2025
@ojhunt ojhunt merged commit 3f42d34 into llvm:main May 9, 2025
7 of 11 checks passed
@ojhunt ojhunt deleted the users/ojhunt/oliver-forgets-to-add-a-test branch May 9, 2025 23:38
@llvmbot
Copy link
Member

llvmbot commented May 9, 2025

@llvm/pr-subscribers-clang

Author: Oliver Hunt (ojhunt)

Changes

Forgot to actually add the test as part of the __ptrauth on intptr PR


Full diff: https://github.com/llvm/llvm-project/pull/139338.diff

1 Files Affected:

  • (added) clang/test/Sema/ptrauth-intptr-qualifier.c (+35)
diff --git a/clang/test/Sema/ptrauth-intptr-qualifier.c b/clang/test/Sema/ptrauth-intptr-qualifier.c
new file mode 100644
index 0000000000000..efce95795356e
--- /dev/null
+++ b/clang/test/Sema/ptrauth-intptr-qualifier.c
@@ -0,0 +1,35 @@
+// RUN: %clang_cc1 -triple arm64-apple-ios -fsyntax-only -verify -fptrauth-intrinsics %s
+
+char __ptrauth(0) a;
+// expected-error@-1{{'__ptrauth' qualifier only applies to pointer or pointer sized integer types; 'char' is invalid}}
+unsigned char __ptrauth(0) b;
+// expected-error@-1{{'__ptrauth' qualifier only applies to pointer or pointer sized integer types; 'unsigned char' is invalid}}
+short __ptrauth(0) c;
+// expected-error@-1{{'__ptrauth' qualifier only applies to pointer or pointer sized integer types; 'short' is invalid}}
+unsigned short __ptrauth(0) d;
+// expected-error@-1{{'__ptrauth' qualifier only applies to pointer or pointer sized integer types; 'unsigned short' is invalid}}
+int __ptrauth(0) e;
+// expected-error@-1{{'__ptrauth' qualifier only applies to pointer or pointer sized integer types; 'int' is invalid}}
+unsigned int __ptrauth(0) f;
+// expected-error@-1{{'__ptrauth' qualifier only applies to pointer or pointer sized integer types; 'unsigned int' is invalid}}
+__int128_t __ptrauth(0) g;
+// expected-error@-1{{'__ptrauth' qualifier only applies to pointer or pointer sized integer types; '__int128_t' (aka '__int128') is invalid}}
+unsigned short __ptrauth(0) h;
+// expected-error@-1{{'__ptrauth' qualifier only applies to pointer or pointer sized integer types; 'unsigned short' is invalid}}
+
+unsigned long long __ptrauth(0) i;
+long long __ptrauth(0) j;
+__SIZE_TYPE__ __ptrauth(0) k;
+const unsigned long long __ptrauth(0) l;
+const long long __ptrauth(0) m;
+const __SIZE_TYPE__ __ptrauth(0) n;
+
+struct S1 {
+  __SIZE_TYPE__ __ptrauth(0) f0;
+};
+
+void x(unsigned long long __ptrauth(0) f0);
+// expected-error@-1{{parameter type may not be qualified with '__ptrauth'; type is '__ptrauth(0,0,0) unsigned long long'}}
+
+unsigned long long __ptrauth(0) y();
+// expected-error@-1{{return type may not be qualified with '__ptrauth'; type is '__ptrauth(0,0,0) unsigned long long'}}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clang Clang issues not falling into any other category

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants