Author: Timm Baeder Date: 2025-01-15T08:41:20+01:00 New Revision: d1d25641f4cb87ab2c07a4136ba1cec4fb6cf578
URL: https://github.com/llvm/llvm-project/commit/d1d25641f4cb87ab2c07a4136ba1cec4fb6cf578 DIFF: https://github.com/llvm/llvm-project/commit/d1d25641f4cb87ab2c07a4136ba1cec4fb6cf578.diff LOG: [clang][bytecode] Handle UETT_PtrAuthTypeDiscriminator (#122941) Added: Modified: clang/lib/AST/ByteCode/Compiler.cpp clang/test/SemaCXX/ptrauth-type-discriminator.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/ByteCode/Compiler.cpp b/clang/lib/AST/ByteCode/Compiler.cpp index a5dfaaf3196559..c6e2a1e50a2aa7 100644 --- a/clang/lib/AST/ByteCode/Compiler.cpp +++ b/clang/lib/AST/ByteCode/Compiler.cpp @@ -2141,6 +2141,16 @@ bool Compiler<Emitter>::VisitUnaryExprOrTypeTraitExpr( return this->emitConst(ASTCtx.toCharUnitsFromBits(Bits).getQuantity(), E); } + if (Kind == UETT_PtrAuthTypeDiscriminator) { + if (E->getArgumentType()->isDependentType()) + return this->emitInvalid(E); + + return this->emitConst( + const_cast<ASTContext &>(ASTCtx).getPointerAuthTypeDiscriminator( + E->getArgumentType()), + E); + } + return false; } diff --git a/clang/test/SemaCXX/ptrauth-type-discriminator.cpp b/clang/test/SemaCXX/ptrauth-type-discriminator.cpp index 685ca1f03fdddf..f5b71ed86acf74 100644 --- a/clang/test/SemaCXX/ptrauth-type-discriminator.cpp +++ b/clang/test/SemaCXX/ptrauth-type-discriminator.cpp @@ -1,6 +1,9 @@ // RUN: %clang_cc1 -triple arm64-apple-ios -std=c++17 -Wno-vla -fsyntax-only -verify -fptrauth-intrinsics %s // RUN: %clang_cc1 -triple aarch64-linux-gnu -std=c++17 -Wno-vla -fsyntax-only -verify -fptrauth-intrinsics %s +// RUN: %clang_cc1 -triple arm64-apple-ios -std=c++17 -Wno-vla -fsyntax-only -verify -fptrauth-intrinsics -fexperimental-new-constant-interpreter %s +// RUN: %clang_cc1 -triple aarch64-linux-gnu -std=c++17 -Wno-vla -fsyntax-only -verify -fptrauth-intrinsics -fexperimental-new-constant-interpreter %s + // RUN: not %clang_cc1 -triple arm64-apple-ios -std=c++17 -Wno-vla -fsyntax-only %s 2>&1 | FileCheck %s // CHECK: this target does not support pointer authentication _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits