#Tests that multiple consecutive weak symbol definitions do not confuse the
#ELF reader. For example:
#
# my_weak_func1:
# my_weak_func2:
# my_weak_func3:
#   code
#
#If my_weak_func2 is merged to other definition, this should not disturb the
#definition my_weak_func1 to "code".
#
#
#RUN: yaml2obj -format=elf %p/Inputs/consecutive-weak-defs.o.yaml -o=%t1.o
#RUN: yaml2obj -format=elf %p/Inputs/main-with-global-def.o.yaml -o=%t2.o
#RUN: lld -flavor gnu -target x86_64 %t1.o %t2.o -e=main -o %t1
#RUN: obj2yaml %t1 | FileCheck -check-prefix CHECKLAYOUT %s
#
# Check that the layout has not been changed:
#
#CHECKLAYOUT:       Name: .text
#CHECKLAYOUT-NEXT:  Type:
#CHECKLAYOUT-NEXT:  Flags:
#CHECKLAYOUT-NEXT:  Address:
#CHECKLAYOUT-NEXT:  AddressAlign:
#CHECKLAYOUT-NEXT:  Content: 554889E5E8020000005DC3554889E5B8640000005DC3
#                            ^~~> my_func          ^~~> my_weak_func
#
#
#
#Our two input files were produced by the following code:
#
#Inputs/consecutive-weak-defs.o.yaml (this one is in assembly to allow us to
#                                     easily define multiple labels)
#
#         .text
#         .globl  my_func
#         .type   my_func,@function
# my_func:
#         pushq   %rbp
#         movq    %rsp, %rbp
#         callq   my_weak_func
#         popq    %rbp
#         retq
# .Ltmp0:
#         .size   my_func, .Ltmp0-my_func
#
#         .text
#         .weak   my_weak_func
#         .type   my_weak_func,@function
#         .weak   my_weak_func2
#         .type   my_weak_func2,@function
#         .weak   my_weak_func3
#         .type   my_weak_func3,@function
# my_weak_func:
# my_weak_func2:
# my_weak_func3:
#         pushq   %rbp
#         movq    %rsp, %rbp
#         movl    $100, %eax
#         popq    %rbp
#         retq
# .Ltmp1:
#         .size   my_weak_func, .Ltmp1-my_weak_func
#         .size   my_weak_func2, .Ltmp1-my_weak_func2
#         .size   my_weak_func3, .Ltmp1-my_weak_func3
#
#Inputs/main-with-global-def.o.yaml:
#
# int my_func();
#
# int my_weak_func2() {
#     return 200;
# }
#
# int main() {
#     return my_func();
# }
#
#-------------------------------------------------------------------------------
# The net effect is that this program should return 100.

