On 12/12/2017 12:01 PM, Jakub Jelinek wrote:
Hi!
This patch avoids ICEs when last_decl isn't a decl.
Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
Though, I believe it would be better to do the attribute exclusions check
in duplicate_decls instead if the attributes don't appear together already
on a single decl, instead of trying to do another lookup. I've filed a PR
where it makes a difference.
The reason for implementing attribute checking in the middle-end
is so that it can be done consistently across all front-ends and
back-ends, without back-end maintainers having to change the front
end code, and so that conflicting attributes can be dropped before
they are applied. I went into more detail in my reply to Jason
here:
https://gcc.gnu.org/ml/gcc-patches/2017-08/msg01371.html
I'm just starting to look into the bug you filed (83394) but from
what I've seen so far it seems to be a problem with calling
lookup_name() to find the already declared class member conversion
operator. I'm sure there's a way to look it up and fix the bug
without changing the fundamental design of the improvement.
Martin