llvm-6502/test/Feature
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
..
aliases.ll Prevent alias from pointing to weak aliases. 2014-03-27 15:26:56 +00:00
alignment.ll
attributes.ll Modify the LLVM assembly output so that it uses references to represent function attributes. 2013-02-20 07:21:42 +00:00
basictest.ll
callingconventions.ll
calltest.ll
casttest.ll
cfgstructures.ll
cold.ll Add a new function attribute 'cold' to functions. 2013-05-24 12:26:52 +00:00
const_pv.ll There was a switch fall-through in the parser for textual LLVM that caused 2013-01-07 13:32:38 +00:00
constexpr.ll
constpointer.ll
escaped_label.ll
exception.ll
float.ll
fold-fpcast.ll
forwardreftest.ll
global_pv.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +00:00
global_section.ll
globalredefinition3.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
globalvars.ll
indirectcall2.ll
indirectcall.ll
inlineasm.ll
instructions.ll
intrinsic-noduplicate.ll Expose "noduplicate" attribute as a property for intrinsics. 2014-03-18 23:51:07 +00:00
intrinsics.ll Change math intrinsic attributes from readonly to readnone. These 2014-03-06 00:18:15 +00:00
load_module.ll Remove "lto_on_osx" xfails, now that -rdynamic works on Darwin. 2013-08-04 23:55:24 +00:00
md_on_instruction.ll Debug Info: update testing cases to specify the debug info version number. 2013-11-23 01:16:29 +00:00
memorymarkers.ll
metadata.ll
minsize_attr.ll Modify the LLVM assembly output so that it uses references to represent function attributes. 2013-02-20 07:21:42 +00:00
NamedMDNode2.ll
NamedMDNode.ll
newcasts.ll Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
optnone-opt.ll Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
optnone.ll The 'optnone' attribute means don't inline anything into this function 2013-11-18 21:44:03 +00:00
packed_struct.ll
packed.ll
paramattrs.ll
ppcld.ll
prefixdata.ll Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
properties.ll Remove the dependent libraries feature. 2012-11-27 09:55:56 +00:00
prototype.ll
README.txt
recursivetype.ll
simplecalltest.ll
small.ll
smallest.ll
sparcld.ll
terminators.ll
testalloca.ll
testconstants.ll
testlogical.ll
testtype.ll
testvarargs.ll
undefined.ll
unreachable.ll
varargs_new.ll
varargs.ll
vector-cast-constant-exprs.ll
weak_constant.ll
weirdnames.ll
x86ld.ll

This directory contains test cases for individual source features of LLVM.
It is designed to make sure that the major components of LLVM support all of the
features of LLVM, for very small examples.  Entire programs should not go here.

Regression tests for individual bug fixes should go into the test/Regression dir.