rjmccall wrote:
The basic design idea behind Clang's visibility model is to treat hidden
visibility as essentially a second grade of external linkage, external to the
translation unit but internal to the linkage unit (i.e. image). So what you
pointed out about using an anonymous namespace is
MaskRay wrote:
> > After the change, does it seem more feasible to ignore template parameters?
>
> Hmm. You're right that considering the type of a non-type template argument
> would be enough to give the right visibility to my example. It would not be
> enough if the template was used as a te
rjmccall wrote:
> I cannot figure out a test case for `TemplateArgument::Expression`. I wonder
> whether it applies to `X<&s.s> x5;` (address of static member), which Clang
> doesn't support.
It's primarily used as a dependent template argument. I'm not sure off-hand
that it's *never* canoni
MaskRay wrote:
Thanks for the comment. Frankly, I am at a loss in deriving a criterion (for
shouldConsiderTemplateVisibility) to select one of the following rules.
(1) factor in both template arguments and template parameters
(2) factor in only template arguments
(3) factor in nothing.
Could y
https://github.com/MaskRay updated
https://github.com/llvm/llvm-project/pull/72092
>From 401af7b4eabe92c8264c722a3f1181875da18438 Mon Sep 17 00:00:00 2001
From: Fangrui Song
Date: Sun, 12 Nov 2023 23:22:50 -0800
Subject: [PATCH 1/2] Ignore template parameter visibility
When computing the visib
rjmccall wrote:
Can we just ignore template parameters selectively when we have a visibility
attribute, the way I suggested in https://reviews.llvm.org/D154774? To quote:
> A visibility attribute on an explicit specialization or instantiation should
> definitely override everything else. A v
github-actions[bot] wrote:
:warning: C/C++ code formatter, clang-format found issues in your code.
:warning:
You can test this locally with the following command:
``bash
git-clang-format --diff e734bc53de8173a1b54493f3e0c8f70575341a9e
401af7b4eabe92c8264c722a3f1181875da18438 --
llvmbot wrote:
@llvm/pr-subscribers-clang
Author: Fangrui Song (MaskRay)
Changes
When computing the visibility of a template
specialization/instantiation, GCC considers template arguments and
ignores type template parameters.
We currently consider non-type template parameters, which adds
https://github.com/MaskRay created
https://github.com/llvm/llvm-project/pull/72092
When computing the visibility of a template
specialization/instantiation, GCC considers template arguments and
ignores type template parameters.
We currently consider non-type template parameters, which adds a lo