Skip to content

[clang][PAC] add ptrauth intptr test #139338

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

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
None yet
Development

Successfully merging this pull request may close these issues.

2 participants