Reject alias to undefined symbols in the verifier.

On ELF and COFF an alias is just another name for a position in the file.
There is no way to refer to a position in another file, so an alias to
undefined is meaningless.

MachO currently doesn't support aliases. The spec has a N_INDR, which when
implemented will have a different set of restrictions. Adding support for
it shouldn't be harder than any other IR extension.

For now, having the IR represent what is actually possible with current
tools makes it easier to fix the design of GlobalAlias.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203705 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2014-03-12 20:15:49 +00:00
parent 4207c6759c
commit 38048cdb1c
17 changed files with 166 additions and 63 deletions
+5
View File
@@ -687,6 +687,11 @@ The linkage must be one of ``private``, ``linker_private``,
might not correctly handle dropping a weak symbol that is aliased by a non-weak
alias.
Alias that are not ``unnamed_addr`` are guaranteed to have the same address as
the aliasee.
The aliasee must be a definition.
.. _namedmetadatastructure:
Named Metadata