tmsriram added a comment. We just noticed an issue with alias attribute and this option. Here is the code that exposes the problem:
alias_global.c static int foo; extern int bar __attribute__((alias("foo"))) $ clang -c alias_global.c -funique-internal-linkage-names alias_global.c:4:31: error: alias must point to a defined variable or function extern int bar __attribute__((alias("foo"))); This happens because bar is aliased to "foo" and not "foo.<md5sum>". I would like to know your thoughts on this? Here is what I think. alias attribute is a bit special in that the symbol name must be given carefully, for instance the mangled name if it is a C++ compile and the actual name for a C compile. Even without the option, the same error will happen if a C++ compiler was used on this code. So, in some sense, alias attribute requires the user to know what symbol name to expect. -funique-internal-linkage-names can be treated as just an additional extension of this where the user must append the md5 hash of the module, which can be computed independently with: $ echo -n alias_global.c | md5sum So, I suggest we leave it as it is and add to the documentation that this needs to be kept in mind. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D73307/new/ https://reviews.llvm.org/D73307 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits