-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Description
| Bugzilla Link | 1076 |
| Resolution | FIXED |
| Resolved on | Feb 22, 2010 12:54 |
| Version | trunk |
| OS | All |
| Reporter | LLVM Bugzilla Contributor |
Extended Description
Currently, llvm-upgrade changes the names of global variables in an attempt to
disambiguate type plane collapsing. For example:
%ptr = external global int* ; <int**> [#uses=1]
%dst = external global int ; <int*> [#uses=2]
%src = external global int ; <int*> [#uses=1]
gets translated to:
%ptr.s = external global i32*
%dst.s = external global i32
%src.s = external global i32
This is incorrect for external globals. The same applies for external functions.
The names cannot be changed or linking errors will result.
This bug requests llvm-upgrade to not rename global values of any external
linkage type that do not have type plane collapsing conflicts. If there is a
type plane collapse conflict, only one variable should be renamed and a warning
should be emitted indicating the potential for linkage errors.