https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113359
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Just going from the demangled name of std::pair<std::chrono::time_point<ceph::mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, Context*> it would surprise me if it was ODR violation in the testcase, because class Context is only defined in Timer.ii, not in the other preprocessed source, ceph::mono_clock is defined in both but looks the same (and it is empty class anyway), and the pair uses Context* as second type anyway, so it is unclear how it could become something smaller than pointer. But, admittedly I haven't looked up at this under the debugger and not even sure where to look at that.