llvm/test/Transforms/GlobalOpt
Rafael Espindola f165cf7ce8 Prevent alias from pointing to weak aliases.
This adds back r204781.

Original message:

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@204934 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-27 15:26:56 +00:00
..
2004-10-10-CastStoreOnce.ll
2005-06-15-LocalizeConstExprCrash.ll
2005-09-27-Crash.ll
2006-07-07-InlineAsmCrash.ll
2006-11-01-ShrinkGlobalPhiCrash.ll
2007-04-05-Crash.ll
2007-05-13-Crash.ll
2007-06-04-PackedStruct.ll
2007-11-09-GEP-GEP-Crash.ll
2008-01-03-Crash.ll
2008-01-13-OutOfRangeSROA.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-01-29-VolatileGlobal.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-04-26-SROA-Global-Align.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-07-17-addrspace.ll Quote potential shell expansions found in tests 2013-10-28 23:37:45 +00:00
2008-12-16-HeapSRACrash-2.ll
2008-12-16-HeapSRACrash.ll
2009-01-13-phi-user.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2009-02-15-BitcastAlias.ll Reject alias to undefined symbols in the verifier. 2014-03-12 20:15:49 +00:00
2009-02-15-ResolveAlias.ll Fixup to r186268 and r186269: don't append -LABEL to CHECK-NOT. No functionality change. 2013-07-14 02:10:57 +00:00
2009-03-05-dbg.ll Debug Info Testing: update context from empty string to null. 2013-09-08 03:11:54 +00:00
2009-03-06-Anonymous.ll
2009-03-07-PromotePtrToBool.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
2009-06-01-RecursivePHI.ll
2009-11-16-BrokenPerformHeapAllocSRoA.ll Teach globalopt to not nuke all stores to globals. Keep them around of they 2012-07-24 07:21:08 +00:00
2009-11-16-MallocSingleStoreToGlobalVar.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
2010-02-25-MallocPromote.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +00:00
2010-02-26-MallocSROA.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +00:00
2010-10-19-WeakOdr.ll
2011-04-09-EmptyGlobalCtors.ll
2012-05-11-blockaddress.ll Catch more CHECK that can be converted to CHECK-LABEL in Transforms for easier debugging. No functionality change. 2013-07-14 01:50:49 +00:00
alias-resolve.ll Prevent alias from pointing to weak aliases. 2014-03-27 15:26:56 +00:00
alias-used-address-space.ll Fix addrspacecast with metadata globals 2014-01-02 19:53:49 +00:00
alias-used-section.ll GlobalOpt: Aliases don't have sections, don't copy them when replacing 2014-02-13 02:18:36 +00:00
alias-used.ll s/compiler_used/compiler.used/. 2013-07-19 18:44:51 +00:00
array-elem-refs.ll Fix a use-after-free error in GlobalOpt CleanupConstantGlobalUsers 2013-12-12 20:45:24 +00:00
atexit.ll GlobalOpt: fix an issue where CXAAtExitFn points to a deleted function. 2013-05-14 21:52:44 +00:00
atomic.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
basictest.ll
blockaddress.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
cleanup-pointer-root-users.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
compiler-used.ll Don't crash when llvm.compiler.used becomes empty. 2013-07-20 23:33:15 +00:00
constantexpr-dangle.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
constantfold-initializers.ll
crash-2.ll Use a worklist to avoid a sneaky iterator invalidation. 2013-04-02 08:16:45 +00:00
crash.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +00:00
ctor-list-opt-constexpr.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
ctor-list-opt-inbounds.ll
ctor-list-opt.ll
cxx-dtor.ll
deadfunction.ll
deadglobal-2.ll
deadglobal.ll Catch more CHECK that can be converted to CHECK-LABEL in Transforms for easier debugging. No functionality change. 2013-07-14 01:50:49 +00:00
externally-initialized-global-ctr.ll Added missing newline to end of test case. 2013-02-05 19:39:44 +00:00
fastcc.ll GlobalOpt: Apply fastcc to internal x86_thiscallcc functions 2014-02-26 19:57:30 +00:00
globalsra-partial.ll
globalsra-unknown-index.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
globalsra.ll
heap-sra-1.ll
heap-sra-2.ll
heap-sra-3.ll
heap-sra-4.ll
heap-sra-phi.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
integer-bool.ll Revert r204076 for now - it caused significant regressions in a number of 2014-03-23 04:22:31 +00:00
invariant-nodatalayout.ll Check that TD isn't NULL before dereferencing it down this path. 2013-07-25 02:55:14 +00:00
invariant.ll
invoke.ll
iterate.ll
load-store-global.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
malloc-promote-1.ll
malloc-promote-2.ll
malloc-promote-3.ll Respect the 'nobuiltin' attribute when determining if a call is to a memory builtin. 2013-05-16 04:12:04 +00:00
memcpy.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
memset-null.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 01:28:40 +00:00
memset.ll Delete unread globals through addrspacecast 2014-01-02 20:01:43 +00:00
metadata.ll Revert r191834 until we measure the effect of this benchmarks and maybe find a better way to fix it 2013-10-07 19:03:24 +00:00
phi-select.ll
storepointer-compare.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
storepointer.ll
tls.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
trivialstore.ll
undef-init.ll
unnamed-addr.ll Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. 2013-10-27 03:08:44 +00:00
zeroinitializer-gep-load.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00