llvm/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 manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
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 Update tests to the newest EH syntax. 2011-08-25 01:30:18 +00:00
calltest.ll Update tests to the newest EH syntax. 2011-08-25 01:30:18 +00:00
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 Add feature test for the new exception handling stuff. 2011-08-25 01:19:13 +00:00
float.ll The powers that be have decided that LLVM IR should now support 16-bit 2011-12-17 00:04:22 +00:00
fold-fpcast.ll
forwardreftest.ll Remove support for parsing the "type i32" syntax for defining a numbered 2011-06-19 00:03:46 +00:00
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 Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
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 Extend function-local metadata to be usable as attachments. 2010-08-24 02:24:03 +00:00
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 Disallow null as a named metadata operand. 2010-07-21 18:54:18 +00:00
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 Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
packed.ll
paramattrs.ll Stop accepting and ignoring attributes in function types. Attributes are applied 2011-06-17 17:37:13 +00:00
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 Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
testvarargs.ll
undefined.ll
unreachable.ll
varargs_new.ll
varargs.ll
vector-cast-constant-exprs.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
weak_constant.ll Remove support for parsing the "type i32" syntax for defining a numbered 2011-06-19 00:03:46 +00:00
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.