This issue is fixed in clang 3.4, but not earlier. Given that it is
a compiler bug or at least a contentious compiler trait, and that
Base(Connection& conn)
is protected, you might be able to go with
an in-your-face conditional compilation workaround, e.g.
class Base {
protected:
#if HAVE_BUG_GCC19249
Base(Connection& conn = _workaround_bug_gcc19249_) : myConn(conn) {;}
#else
Base(Connection& conn) : myConn(conn) {;}
#endif
Connection& myConn;
#if HAVE_BUG_GCC19249
static Connection _workaround_bug_gcc19249_;
// ... conditional definition in implementation file.
#endif
};