llvm-project/clang/test/CodeGenCXX/implicit-record-visibility.cpp
Daniil Kovalev 6bb63002fc
[PAC] Fix address discrimination for type info vtable pointers (#102199)
In #99726, `-fptrauth-type-info-vtable-pointer-discrimination` was
introduced, which is intended to enable type and address discrimination
for type_info vtable pointers. However, some codegen logic for actually
enabling address discrimination was missing. This patch addresses the
issue.

Fixes #101716
2024-10-18 08:58:26 +03:00

13 lines
529 B
C++

// RUN: %clang_cc1 %s -I%S -fvisibility=hidden -triple x86_64-linux-gnu -emit-llvm -o - | FileCheck %s
#include <stdarg.h>
#include <typeinfo>
// If struct __va_list_tag did not explicitly have default visibility, then
// under -fvisibility=hidden the type of function f, due to its va_list (aka
// __builtin_va_list, aka __va_list_tag (*)[1]) parameter would be hidden:
// CHECK: @_ZTIFvP13__va_list_tagE = linkonce_odr constant
// CHECK: @_ZTSFvP13__va_list_tagE = linkonce_odr constant
void f(va_list) { (void)typeid(f); }