george.burgess.iv added a comment. > I'd like to understand this use case a little bit better. If you don't > perform the mangling, then choosing which overload gets called is already > based on the source order, isn't it? See https://godbolt.org/g/8b10Ns
I think I might have miscommunicated: `transparently_overloadable` only enforces no mangling on one function out of the set of functions with the same name. So, void foo(int) __attribute__((transparently_overloadable)); void foo(float) __attribute__((overloadable)); void bar() { foo(1); // calls @foo foo(1f); // calls @_Z3foof } > The logic as to why overloadable is required on every redeclaration makes > sense, but also flies in the face of your rational for why you want a new > spelling of the same attribute that doesn't need to be on every > redeclaration. I worry about this difference being mildly confusing to user. Yeah, good point. The more I think about that, the more I don't like the inconsistency; I'll drop that change. https://reviews.llvm.org/D32332 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits