http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51827
Bug #: 51827
Summary: Error: 'FOO' conflicts with a previous declaration,
with PCH/LTO/C++11
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: [email protected]
ReportedBy: [email protected]
Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
Build: i686-pc-linux-gnu
GCC 4.7.0 20120107 (experimental)
TestCase.H:3:29: error: 'T<Y>::T(S<A ...>) [with A = {A ...}; Y = int]'
conflicts with a previous declaration
TestCase.H:3:29: note: previous declaration 'T<Y>::T(S<A ...>)'
TestCase.H:3:29: note: -fabi-version=6 (or =0) avoids this error with a change
in mangling
TestCase.H:3:29: error: 'T<Y>::T(S<A ...>) [with A = {A ...}; Y = int]'
conflicts with a previous declaration
TestCase.H:3:29: note: previous declaration 'T<Y>::T(S<A ...>)'
TestCase.H:3:29: note: -fabi-version=6 (or =0) avoids this error with a change
in mangling
Compile with `-flto -std=gnu++11':
=================== 8< ===================
template<typename X> struct S { };
template<typename Y> struct T {
template <typename ... A> T(S <A ...>);
};
inline void f(T<int>) { }
=================== >8 ===================