CarlosAlbertoEnciso added a comment. In https://reviews.llvm.org/D44826#1046906, @dblaikie wrote:
> First of all, thanks very much for your feedback. > While implementing the warning is great (wonder if there's any codebase > that isn't -Wunused-using clean, that we could use to compare Clang and > GCC's behavior broadly - make sure it's catching the same cases (or > justify/investigate differences)) - and using it to motivate the debug info > is an improvement to the debug info - it won't quite address all the wasted > debug info, unfortunately :/ You are making a very good point. The -Wunused-using is just addressing one of the factors affecting the debug info size. > Consider this: > > namespace a { > > struct b; > > }; > namespace x { > > using a::b; > inline void f(b*) { > } > > } > > Now the using declaration is used, but if 'f' is never called in this > translation unit, it's a bit weird to produce debug info for the using decl > and could still substantially bloat debug info. (indeed most of the bloat > that the using decl/directive debug info is producing is probably from > directives that are used, but not in a way that's relevant to a certain > translation unit) The modified patch catches that 'referenced' but 'unused' using declaration. > I've not looked at the change yet, but if it's particularly > expensive/complicated to wire up the debug info side, it might not be worth > it given it's probably not a significant savings & somewhat of a dead-end > compared to what would be needed for a more complete fix. But I guess it's > probably not expensive/complicated, so probably some fine low hanging fruit > to pick until a more complete fix/improvement is implemented. The warning generation check is done at the point where a lexical scope is closed and it does not 'see' further changes on the same using after that point. The second part (do not generate debug info) uses a similar approach, with the only difference that the checks and debug info generation is done at the end of the compilation unit, when more information is available. Repository: rC Clang https://reviews.llvm.org/D44826 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits