diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-03-28 21:37:02 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-03-28 21:37:02 +0000 |
commit | f575b2687cdd1ad8d83c5dbf88dbca347e152648 (patch) | |
tree | ef4da1ea79a8bba847dd1b4d24bf4953c04fabb8 /llvm/test/tools/llvm-split | |
parent | d3df400fa9d20ea11c1c0b1296ce4299d5b82b86 (diff) | |
download | bcm5719-llvm-f575b2687cdd1ad8d83c5dbf88dbca347e152648.tar.gz bcm5719-llvm-f575b2687cdd1ad8d83c5dbf88dbca347e152648.zip |
Remove personality for declarations in CloneModule.
Personality is copied as part of copyFunctionAttributes, but it is
invalid on a declaration. Remove the personality attribute it the
function body is not cloned.
Also add a verifier run over output modules in the llvm-split tool.
llvm-svn: 264667
Diffstat (limited to 'llvm/test/tools/llvm-split')
-rw-r--r-- | llvm/test/tools/llvm-split/personality.ll | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-split/personality.ll b/llvm/test/tools/llvm-split/personality.ll new file mode 100644 index 00000000000..50a4fb235b9 --- /dev/null +++ b/llvm/test/tools/llvm-split/personality.ll @@ -0,0 +1,18 @@ +; Test that "personality" attributes are correctly updated when cloning modules. +; RUN: llvm-split -o %t %s +; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s +; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s + +; CHECK0: define void @foo() +; CHECK1: declare void @foo() +define void @foo() { + ret void +} + +; CHECK0: declare void @bar() +; CHECK0-NOT: personality +; CHECK1: define void @bar() personality i8* bitcast (void ()* @foo to i8*) +define void @bar() personality i8* bitcast (void ()* @foo to i8*) +{ + ret void +} |