[Bug c++/81589] Possible False-Positive with decltype
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Feb 8 12:42:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81589
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |marxin at gcc dot gnu.org
--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
I see the same problem (reduced from Chromium package):
cat chrome.ii
template <typename b, b c> struct d { static constexpr b e = c; };
template <typename> struct aa;
template <typename...> struct f;
template <typename g, typename h> struct f<g, h> : aa<g>::i {};
template <typename b>
struct j : f<b, d<bool, __is_trivially_constructible(b, b)>> {};
template <typename> struct aa { typedef d<bool, false> i; };
template <typename k> struct l { typename k::ab ab; };
template <typename> class m { typedef int ab; };
class n {};
struct o {
template <typename> using ac = n;
};
struct s : o {
struct t {
typedef ac<int> ad;
};
};
template <typename ae, typename af> void p(ae, af) { typename l<ae>::ag q; }
template <typename ae, typename af, typename b> void r(ae ah, af ai, b) {
p(ah, ai);
}
template <typename u, bool = j<u>::e> struct aj {};
template <typename u> class w { aj<u> a; };
struct x {
s::t::ad y();
x(long, n);
int ak;
};
template <typename> class z : x {
typedef m<z> al;
public:
z(const z &) : x(0, y()) {
n v;
r(am(), ak, v);
}
al am();
};
class SerializedHandle;
using an = SerializedHandle;
w<z<an>> a;
More information about the Gcc-bugs
mailing list