Verify that attributes are not lost during linking.

We don't want to lose attributes when a function decl without them is merged
with a function decl that has them.
PR2382

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200030 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2014-01-24 19:20:15 +00:00
parent d7053be532
commit d221469cc6
2 changed files with 22 additions and 0 deletions

View File

@ -0,0 +1,14 @@
; RUN: llvm-link %s %p/func-attrs-b.ll -S -o - | FileCheck %s
; PR2382
; CHECK: call void @check0(%struct.S0* sret null, %struct.S0* byval align 4 null, %struct.S0* align 4 null, %struct.S0* byval align 4 null)
; CHECK: define void @check0(%struct.S0* sret %agg.result, %struct.S0* byval %arg0, %struct.S0* %arg1, %struct.S0* byval %arg2)
%struct.S0 = type <{ i8, i8, i8, i8 }>
define void @a() {
call void @check0(%struct.S0* sret null, %struct.S0* byval align 4 null, %struct.S0* align 4 null, %struct.S0* byval align 4 null)
ret void
}
declare void @check0(%struct.S0*, %struct.S0*, %struct.S0*, %struct.S0*)

View File

@ -0,0 +1,8 @@
; This file is used with func-attrs-a.ll
; RUN: true
%struct.S0 = type <{ i8, i8, i8, i8 }>
define void @check0(%struct.S0* sret %agg.result, %struct.S0* byval %arg0, %struct.S0* %arg1, %struct.S0* byval %arg2) {
ret void
}