I'm gently pinging about the patch I submitted:
https://gcc.gnu.org/pipermail/gcc-patches/2024-August/660177.html
This patch was created in response to Jason's comments here:
https://gcc.gnu.org/pipermail/gcc-patches/2024-July/657739.html
I appreciate your time and consideration.
Thank you.
When deducing auto for `adc_return_type`, `adc_variable_type`, and
`adc_decomp_type` contexts (at the usage time), we try to resolve the outermost
template arguments to be used for satisfaction. This is done by one of the
following, depending on the scope:
1. Checking the `DECL_TEMPLATE_INFO` of t
When deducing auto for `adc_return_type`, `adc_variable_type`, and
`adc_decomp_type` contexts (at the usage time), we try to resolve the outermost
template arguments to be used for satisfaction. This is done by one of the
following, depending on the scope:
1. Checking the `DECL_TEMPLATE_INFO` of t
wrote:
> On 7/18/24 12:03 PM, Seyed Sajad Kahani wrote:
> > When deducing auto for `adc_return_type`, `adc_variable_type`, and
> > `adc_decomp_type` contexts (at the usage time), we try to resolve
> > the outermost
> > template arguments to be used for satisfaction. Thi
On Wed, 2024-07-17 at 15:48 -0400, Patrick Palka wrote:
>
> I guess you mean B here?
>
Yes. Apologies for my mistake.
> Ah, that's because the substitution failure in the first example
> occurs
> during constraint _normalization_, and in second example it occurs
> during atomic constraint _sat
When deducing auto for `adc_return_type`, `adc_variable_type`, and
`adc_decomp_type` contexts (at the usage time), we try to resolve the outermost
template arguments to be used for satisfaction. This is done by one of the
following, depending on the scope:
1. Checking the `DECL_TEMPLATE_INFO` of t
This patch addresses a difference between the hash function and the equality
function for canonical types of template parameters (ctp_hasher). The equality
function uses comptypes (typeck.cc) (with COMPARE_STRUCTURAL) and checks
constraint equality for two auto nodes (typeck.cc:1586), while the has
This patch addresses a difference between the hash function and the equality
function for canonical types of template parameters (ctp_hasher). The equality
function uses comptypes (typeck.cc) (with COMPARE_STRUCTURAL) and checks
constraint equality for two auto nodes (typeck.cc:1586), while the has
On Tue, 16 Jul 2024 at 17:05, Jason Merrill wrote:
> The change looks good, just a couple of whitespace tweaks needed. But
> what happened to the testcase?
I was unable to design any testcase that differs by applying this
patch, due to the proper handling of hash collisions
(hash-table.h:1059).
ddition to
these changes, we also need to modify constraint_satisfaction_value
(constraints.cc) as well to raise an error for the static_assert and other
usages of concept expressions as well.
On Fri, 12 Jul 2024 at 21:31, Patrick Palka wrote:
>
> Interesting, thanks for the detailed write
I am sorry for the inconvenience, a fixed version was sent just now.
This patch addresses a difference between the hash function and the equality
function for canonical types of template parameters (ctp_hasher). The equality
function uses comptypes (typeck.cc) (with COMPARE_STRUCTURAL) and checks
constraint equality for two auto nodes (typeck.cc:1586), while the has
9 Jul 2024 at 14:41, Seyed Sajad Kahani wrote:
>
> Hi.
>
> While investigating a fix for C++/PR115030 (a bug in constrained auto
> deduction), I was wondering why we are not substituting constraint args of an
> auto node in tsubst (pt.cc:16533). Instead, this substitution is del
This patch addresses a bug in constrained auto deduction (C++/PR115030) by
modifying tsubst to eagerly substitute the constraint args of an auto node.
This change avoids the complexity of finding outer_targs during
do_auto_deduction.
Note that outer_targs cannot be completely removed but will be s
Hi.
While investigating a fix for C++/PR115030 (a bug in constrained auto
deduction), I was wondering why we are not substituting constraint args of an
auto node in tsubst (pt.cc:16533). Instead, this substitution is delayed until
do_auto_deduction (pt.cc), where we attempt to find the substituted
When deducing auto for `adc_return_type`, `adc_variable_type`, and
`adc_decomp_type` contexts (at the usage time), we try to resolve the outermost
template arguments to be used for satisfaction. This is done by one of the
following, depending on the scope:
1. Checking the `DECL_TEMPLATE_INFO` of t
This patch resolves PR114915 by replacing the logic that fills in the
missing levels in do_auto_deduction in cp/pt.cc.
The new approach now trims targs if the depth of targs is deeper than desired
(this will only happen in specific contexts), and still fills targs with empty
layers if it has fewer
This patch resolves PR114915 by replacing the logic that fills in the missing
levels in do_auto_deduction in cp/pt.cc.
The new approach now trims targs if the depth of targs is deeper than desired
(this will only happen in specific contexts), and still fills targs with empty
layers if it has few
Thanks for your suggestions. I will apply them in the upcoming patch (v3).
On Mon, May 6, 2024 at 7:46 PM Patrick Palka wrote:
> We could also/instead consider defining
>
> int want = TEMPLATE_TYPE_ORIG_LEVEL (auto_node);
> int have = TMPL_ARGS_DEPTH (full_targs);
>
> and express the logic in ter
The limitations of the initial patch (checking specializiation template usage),
have been discussed.
> I realized that for the case where we have a member function template
> of a class template, and a specialization of the enclosing class only
> (like below),
>
> template <>
> template
> void S
Thanks for your helpful feedback. It has totally shaped my understanding.
While I was trying to develop other tests, as you suggested:
> It would be good to also test an explicit variable tmpl spec and
> an explicit spec of a member template of a class template.
I realized that for the case wher
When deducing auto for `adc_return_type`, `adc_variable_type`, and
`adc_decomp_type` contexts (at the usage time), we try to resolve the outermost
template arguments to be used for satisfaction. This is done by one of the
following, depending on the scope:
1. Checking the `DECL_TEMPLATE_INFO` o
22 matches
Mail list logo