Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-02-04 Thread Alexandre Oliva
On Jan 30, 2019, Paolo Carlini wrote: > Hi, > On 30/01/19 17:25, Alexandre Oliva wrote: >> +static inline bool >> +instantiates_primary_template_p (tree node) > I'm rather surprised by the inline: It's (so far) a single use function, so it will likely be inlined even without it. But yeah, I

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-30 Thread Paolo Carlini
Hi, On 30/01/19 17:25, Alexandre Oliva wrote: +static inline bool +instantiates_primary_template_p (tree node) I'm rather surprised by the inline: as a general rule, we want functions this size all inline? I would say that in the C++ library we don't, sure, not very big but already too big.

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-30 Thread Jason Merrill
On 1/30/19 11:25 AM, Alexandre Oliva wrote: On Jan 30, 2019, Jason Merrill wrote: Hmm, I wouldn't expect that from a function named "instantiates_primary_template_p". Hmm, indeed. Perhaps another function that calls instantiates_primary_template_p and then checks for dependent innermost

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-30 Thread Alexandre Oliva
On Jan 30, 2019, Jason Merrill wrote: > Hmm, I wouldn't expect that from a function named > "instantiates_primary_template_p". Hmm, indeed. > Perhaps another function that calls instantiates_primary_template_p > and then checks for dependent innermost template args? Does that come up as

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-29 Thread Jason Merrill
On Mon, Jan 28, 2019 at 11:37 PM Alexandre Oliva wrote: > On Jan 27, 2019, Jason Merrill wrote: > > >> + ??? How do we > >> + tell apart a partial from a full explicit specialization in a > >> + non-template context? */ > > > We don't need to tell them apart here, the caller checks

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-29 Thread Alexandre Oliva
On Jan 29, 2019, Alexandre Oliva wrote: > The single caller does, indeed, but the function does not make that a > requirement, so others might call it and fail to check it. Should that > test be moved here too? Like this... Regstrapped on x86_64-linux-gnu. Ok to install? [PR87770] test

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-28 Thread Alexandre Oliva
On Jan 27, 2019, Jason Merrill wrote: >> +tinfo = DECL_TEMPLATE_INFO (node); > Maybe use get_template_info? Neat! But then, if we can assume node is a decl, we might as well go straight for DECL_TEMPLATE_INFO. I'd rather not make that assumption, though, and allow this new function to be

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-26 Thread Jason Merrill
On Fri, Jan 25, 2019 at 9:18 PM Alexandre Oliva wrote: > On Jan 24, 2019, Jason Merrill wrote: > > > The latter; you can't have a partial specialization in a function. > > *nod* (though not entirely reflected in the patch below, I see) > >> Any suggestion of a good name for the inline function

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-25 Thread Alexandre Oliva
On Jan 24, 2019, Jason Merrill wrote: > The latter; you can't have a partial specialization in a function. *nod* (though not entirely reflected in the patch below, I see) >> Any suggestion of a good name for the inline function (or would you >> prefer it to be a macro?) that tests whether a

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-24 Thread Jason Merrill
On 1/23/19 10:53 PM, Alexandre Oliva wrote: On Jan 21, 2019, Jason Merrill wrote: "does this have its own template arguments, not just the ones from its enclosing class?" Perhaps compare the number of levels of template arguments of the function to that of its enclosing context? Is this

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-23 Thread Alexandre Oliva
On Jan 21, 2019, Jason Merrill wrote: > "does this have its own template arguments, not just the ones from its > enclosing class?" > Perhaps compare the number of levels of template arguments of the > function to that of its enclosing context? Is this the logic you had in mind? Or can we

Re: [C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-21 Thread Jason Merrill
On 1/18/19 1:55 AM, Alexandre Oliva wrote: When instantiating a partial specialization of a template member function for a full specialization of a class template, we test whether the context of variables local to the partial specialization, i.e., the partial specialization itself, is dependent,

[C++ PATCH] [PR87770] test partial specializations for type dependence

2019-01-17 Thread Alexandre Oliva
When instantiating a partial specialization of a template member function for a full specialization of a class template, we test whether the context of variables local to the partial specialization, i.e., the partial specialization itself, is dependent, and this ICEs in