Hi,
On 07/03/2018 21:23, Jason Merrill wrote:
On Wed, Mar 7, 2018 at 12:18 PM, Paolo Carlini <paolo.carl...@oracle.com> wrote:
Hi,
[snip the various clarifications]
Il 7 Marzo 2018 17:57:07 CET, Jason Merrill <ja...@redhat.com> ha scritto:
My thought was that this patch adds a lot of managing of the flag in
different places in the parser, whereas looking for error_mark_node in
the template parms here would be just in one place. But if you prefer
the current approach, that's fine, it's straightforward enough.
Thanks a lot for the various clarifications above, where essentially turns out
that some details of my patch are correct essentially by chance ;) Seriously,
I'm thinking the following: since 8 is getting real close, what if, for 8, for
the known mild regressions, we go ahead with my super safe Plan B which I
mentioned at beginning of the thread, then as soon as trunk branches we
immediately apply my patch and we give it a serious spin, say we rebuild
distros with it, and see what happens?
This is what I was suggesting, what do you think?
Eh, eh, certainly I don't have anything to say from the correctness
point of view. As I already tried to explain, what I find annoying in
this kind of approach, no matter how well is implemented, is that at
parsing time we have to go anyway over all the parameters of all the
template lists and then we know once and for all, for the corresponding
class, whether there are erroneous parameters or not. In this kind of
approach we go again through all the parameters, and, for example,
multiple times when there are nested classes for example, I'm pretty
sure in some (other) cases too (I should think more about that to be
more specific). If you ask my opinion, at the moment I still believe
that the best solution would be doing something at parsing time, save
the information, in a more elegant way, maybe adding a special
"erroneous TREE_VEC" flag to the TREE_VECs. I don't know exactly. Even
better a unique flag for all the template parameter lists of each class.
That said, if you don't foresee immediate performance-related issues,
it's of course your call ;) If/when I will have a more concrete
alternate proposal I will speak up ;) Nice anyway that we agree about
the basic idea :-)
Paolo.