[Bug c++/42336] ICE with pointer-to-member-function argument in template function
jason at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Dec 15 22:25:00 GMT 2009
------- Comment #9 from jason at gcc dot gnu dot org 2009-12-15 22:24 -------
It does seem kind of dodgy that IPA is modifying the types of functions
directly, though...
Here's a non-C++0x testcase:
struct X {
void func() {}
};
template<typename T, void (X::*P)() = &T::func>
void b(T) {}
int main() {
b(X()); /* line 9 */
X().func();
return 0;
}
So, this could be fixed by
1) Not relying on function types being sensible once IPA begins.
1a) Generating names for debug info earlier
1b) Giving up on trying not to print default args in names for debug info
2) Keeping function types sensible.
--
jason at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jamborm at gcc dot gnu dot
| |org
Summary|[c++0x] ICE with pointer-to-|ICE with pointer-to-member-
|member-function decltype |function argument in
|argument in template |template function
|function |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42336
More information about the Gcc-bugs
mailing list