Rafael Espindola
33845aa8c4
Prevent alias from pointing to weak aliases.
...
Aliases are just another name for a position in a file. As such, the
regular symbol resolutions are not applied. For example, given
define void @my_func() {
ret void
}
@my_alias = alias weak void ()* @my_func
@my_alias2 = alias void ()* @my_alias
We produce without this patch:
.weak my_alias
my_alias = my_func
.globl my_alias2
my_alias2 = my_alias
That is, in the resulting ELF file my_alias, my_func and my_alias are
just 3 names pointing to offset 0 of .text. That is *not* the
semantics of IR linking. For example, linking in a
@my_alias = alias void ()* @other_func
would require the strong my_alias to override the weak one and
my_alias2 would end up pointing to other_func.
There is no way to represent that with aliases being just another
name, so the best solution seems to be to just disallow it, converting
a miscompile into an error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204781 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-26 04:48:47 +00:00
..
2014-03-05 20:09:15 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-03-12 20:15:49 +00:00
2014-03-21 17:38:01 +00:00
2014-02-13 15:38:16 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-19 17:23:20 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-11 21:46:46 +00:00
2014-03-11 10:48:52 +00:00
2014-03-14 23:08:21 +00:00
2014-02-16 07:31:05 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-03-11 10:48:52 +00:00
2014-03-11 10:48:52 +00:00
2014-03-11 10:48:52 +00:00
2014-03-11 10:48:52 +00:00
2014-03-11 10:48:52 +00:00
2014-03-11 10:48:52 +00:00
2014-03-11 10:48:52 +00:00
2014-03-25 12:36:38 +00:00
2014-03-26 00:10:22 +00:00
2014-02-18 11:15:32 +00:00
2014-03-26 00:10:22 +00:00
2014-03-17 18:58:01 +00:00
2014-02-19 15:16:09 +00:00
2014-02-11 07:25:59 +00:00
2014-02-16 11:34:23 +00:00
2014-03-02 09:19:44 +00:00
2014-03-13 12:05:52 +00:00
2014-02-17 07:29:33 +00:00
2014-02-20 07:34:13 +00:00
2014-03-17 17:06:14 +00:00
2014-02-12 23:42:28 +00:00
2014-02-11 10:21:53 +00:00
2014-03-05 19:41:16 +00:00
2014-02-11 15:42:46 +00:00
2014-03-17 01:22:54 +00:00
2014-02-13 14:44:26 +00:00
2014-03-13 23:18:37 +00:00
2014-03-11 10:48:52 +00:00
2014-03-11 10:48:52 +00:00
2014-03-18 17:12:59 +00:00
2014-03-18 17:12:59 +00:00
2014-02-13 14:44:26 +00:00
2014-03-06 22:47:08 +00:00
2014-03-13 20:31:19 +00:00
2014-03-26 04:48:47 +00:00
2014-03-26 04:48:47 +00:00
2014-02-11 21:46:46 +00:00
2014-03-09 06:41:58 +00:00
2014-03-26 00:10:22 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-03-25 06:14:26 +00:00
2014-03-21 17:16:11 +00:00
2014-03-09 06:41:58 +00:00
2014-03-09 06:41:58 +00:00
2014-03-09 06:41:58 +00:00
2014-03-09 06:41:58 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-03-18 20:04:34 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-03-11 15:49:24 +00:00
2014-03-21 06:04:45 +00:00
2014-03-18 18:17:59 +00:00
2014-02-13 14:44:26 +00:00
2014-02-26 22:07:26 +00:00
2014-03-11 00:44:14 +00:00
2014-02-13 14:44:26 +00:00
2014-03-13 13:36:25 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2014-03-21 06:04:45 +00:00
2014-03-11 10:48:52 +00:00
2014-02-13 14:44:26 +00:00
2014-02-19 17:23:20 +00:00
2014-03-20 21:38:04 +00:00
2014-03-21 00:30:24 +00:00
2014-02-25 20:01:08 +00:00
2014-03-05 20:09:15 +00:00
2014-02-19 17:23:20 +00:00
2014-02-28 23:05:31 +00:00
2014-03-21 21:46:24 +00:00
2014-03-12 21:20:55 +00:00
2014-03-22 01:47:22 +00:00
2014-02-22 07:27:04 +00:00
2014-03-07 23:25:55 +00:00
2014-03-17 18:58:01 +00:00
2014-03-18 20:04:34 +00:00
2014-03-05 07:08:16 +00:00
2014-02-16 07:31:05 +00:00
2014-02-27 09:24:31 +00:00
2014-02-28 18:44:39 +00:00
2014-02-26 21:39:12 +00:00
2014-02-12 23:42:28 +00:00
2014-03-25 17:47:06 +00:00
2014-02-16 07:31:05 +00:00