	.file	"tc24_nonzero_sem.c"
	.section	.debug_abbrev,"",@progbits
.Ldebug_abbrev0:
	.section	.debug_info,"",@progbits
.Ldebug_info0:
	.section	.debug_line,"",@progbits
.Ldebug_line0:
	.text
.Ltext0:
	.cfi_sections	.debug_frame
	.section	.rodata
.LC0:
	.string	"tc24_nonzero_sem.c"
.LC1:
	.string	"!r"
	.text
.globl child_fn
	.type	child_fn, @function
child_fn:
.LFB0:
	.file 1 "tc24_nonzero_sem.c"
	.loc 1 19 0
	.cfi_startproc
	pushl	%ebp
	.cfi_def_cfa_offset 8
	.cfi_offset 5, -8
	movl	%esp, %ebp
	.cfi_def_cfa_register 5
	subl	$40, %esp
	.loc 1 21 0
	movl	8(%ebp), %eax
	movl	%eax, -12(%ebp)
	.loc 1 22 0
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	my_sem_wait
	movl	%eax, -16(%ebp)
	cmpl	$0, -16(%ebp)
	je	.L2
	movl	$__PRETTY_FUNCTION__.3356, 12(%esp)
	movl	$22, 8(%esp)
	movl	$.LC0, 4(%esp)
	movl	$.LC1, (%esp)
	call	__assert_fail
.L2:
	.loc 1 23 0
	movl	$0, %eax
	.loc 1 24 0
	leave
	.cfi_restore 5
	.cfi_def_cfa 4, 4
	ret
	.cfi_endproc
.LFE0:
	.size	child_fn, .-child_fn
	.section	.rodata
.LC2:
	.string	"sem1"
.LC3:
	.string	"sem"
	.text
.globl main
	.type	main, @function
main:
.LFB1:
	.loc 1 27 0
	.cfi_startproc
	pushl	%ebp
	.cfi_def_cfa_offset 8
	.cfi_offset 5, -8
	movl	%esp, %ebp
	.cfi_def_cfa_register 5
	andl	$-16, %esp
	subl	$48, %esp
	.loc 1 32 0
	movl	$3, 8(%esp)
	movl	$0, 4(%esp)
	movl	$.LC2, (%esp)
	call	my_sem_init
	movl	%eax, 44(%esp)
	cmpl	$0, 44(%esp)
	jne	.L5
	movl	$__PRETTY_FUNCTION__.3368, 12(%esp)
	movl	$32, 8(%esp)
	movl	$.LC0, 4(%esp)
	movl	$.LC3, (%esp)
	call	__assert_fail
.L5:
	.loc 1 34 0
	movl	$0, 40(%esp)
	jmp	.L6
.L8:
	.loc 1 35 0
	movl	40(%esp), %eax
	leal	0(,%eax,4), %edx
	leal	24(%esp), %eax
	addl	%edx, %eax
	movl	44(%esp), %edx
	movl	%edx, 12(%esp)
	movl	$child_fn, 8(%esp)
	movl	$0, 4(%esp)
	movl	%eax, (%esp)
	call	pthread_create
	movl	%eax, 36(%esp)
	.loc 1 36 0
	cmpl	$0, 36(%esp)
	je	.L7
	movl	$__PRETTY_FUNCTION__.3368, 12(%esp)
	movl	$36, 8(%esp)
	movl	$.LC0, 4(%esp)
	movl	$.LC1, (%esp)
	call	__assert_fail
.L7:
	.loc 1 34 0
	addl	$1, 40(%esp)
.L6:
	cmpl	$2, 40(%esp)
	jle	.L8
	.loc 1 39 0
	movl	$0, 40(%esp)
	jmp	.L9
.L11:
	.loc 1 40 0
	movl	40(%esp), %eax
	movl	24(%esp,%eax,4), %eax
	movl	$0, 4(%esp)
	movl	%eax, (%esp)
	call	pthread_join
	movl	%eax, 36(%esp)
	.loc 1 41 0
	cmpl	$0, 36(%esp)
	je	.L10
	movl	$__PRETTY_FUNCTION__.3368, 12(%esp)
	movl	$41, 8(%esp)
	movl	$.LC0, 4(%esp)
	movl	$.LC1, (%esp)
	call	__assert_fail
.L10:
	.loc 1 39 0
	addl	$1, 40(%esp)
.L9:
	cmpl	$2, 40(%esp)
	jle	.L11
	.loc 1 44 0
	movl	44(%esp), %eax
	movl	%eax, (%esp)
	call	my_sem_destroy
	movl	%eax, 36(%esp)
	cmpl	$0, 36(%esp)
	je	.L12
	movl	$__PRETTY_FUNCTION__.3368, 12(%esp)
	movl	$44, 8(%esp)
	movl	$.LC0, 4(%esp)
	movl	$.LC1, (%esp)
	call	__assert_fail
.L12:
	.loc 1 45 0
	movl	$0, %eax
	.loc 1 46 0
	leave
	.cfi_restore 5
	.cfi_def_cfa 4, 4
	ret
	.cfi_endproc
.LFE1:
	.size	main, .-main
	.section	.rodata
.LC4:
	.string	"sem_init"
	.text
	.type	my_sem_init, @function
my_sem_init:
.LFB2:
	.loc 1 50 0
	.cfi_startproc
	pushl	%ebp
	.cfi_def_cfa_offset 8
	.cfi_offset 5, -8
	movl	%esp, %ebp
	.cfi_def_cfa_register 5
	subl	$40, %esp
	.loc 1 54 0
	movl	$16, (%esp)
	call	malloc
	movl	%eax, -12(%ebp)
	.loc 1 55 0
	cmpl	$0, -12(%ebp)
	je	.L15
	.loc 1 56 0
	movl	16(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	12(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	sem_init
	testl	%eax, %eax
	jns	.L15
	.loc 1 57 0
	movl	$.LC4, (%esp)
	call	perror
	.loc 1 58 0
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	free
	.loc 1 59 0
	movl	$0, -12(%ebp)
.L15:
	.loc 1 76 0
	movl	-12(%ebp), %eax
	.loc 1 77 0
	leave
	.cfi_restore 5
	.cfi_def_cfa 4, 4
	ret
	.cfi_endproc
.LFE2:
	.size	my_sem_init, .-my_sem_init
	.type	my_sem_destroy, @function
my_sem_destroy:
.LFB3:
	.loc 1 80 0
	.cfi_startproc
	pushl	%ebp
	.cfi_def_cfa_offset 8
	.cfi_offset 5, -8
	movl	%esp, %ebp
	.cfi_def_cfa_register 5
	subl	$24, %esp
	.loc 1 81 0
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	sem_destroy
	.loc 1 82 0
	leave
	.cfi_restore 5
	.cfi_def_cfa 4, 4
	ret
	.cfi_endproc
.LFE3:
	.size	my_sem_destroy, .-my_sem_destroy
	.type	my_sem_wait, @function
my_sem_wait:
.LFB4:
	.loc 1 85 0
	.cfi_startproc
	pushl	%ebp
	.cfi_def_cfa_offset 8
	.cfi_offset 5, -8
	movl	%esp, %ebp
	.cfi_def_cfa_register 5
	subl	$24, %esp
	.loc 1 86 0
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	sem_wait
	.loc 1 87 0
	leave
	.cfi_restore 5
	.cfi_def_cfa 4, 4
	ret
	.cfi_endproc
.LFE4:
	.size	my_sem_wait, .-my_sem_wait
	.section	.rodata
	.type	__PRETTY_FUNCTION__.3368, @object
	.size	__PRETTY_FUNCTION__.3368, 5
__PRETTY_FUNCTION__.3368:
	.string	"main"
	.type	__PRETTY_FUNCTION__.3356, @object
	.size	__PRETTY_FUNCTION__.3356, 9
__PRETTY_FUNCTION__.3356:
	.string	"child_fn"
	.text
.Letext0:
	.file 2 "/usr/include/bits/semaphore.h"
	.file 3 "/usr/include/bits/pthreadtypes.h"
	.section	.debug_info
	.long	0x24b
	.value	0x3
	.long	.Ldebug_abbrev0
	.byte	0x4
	.uleb128 0x1
	.long	.LASF24
	.byte	0x1
	.long	.LASF25
	.long	.LASF26
	.long	.Ltext0
	.long	.Letext0
	.long	.Ldebug_line0
	.uleb128 0x2
	.byte	0x4
	.byte	0x7
	.long	.LASF0
	.uleb128 0x2
	.byte	0x1
	.byte	0x8
	.long	.LASF1
	.uleb128 0x2
	.byte	0x2
	.byte	0x7
	.long	.LASF2
	.uleb128 0x2
	.byte	0x4
	.byte	0x7
	.long	.LASF3
	.uleb128 0x2
	.byte	0x1
	.byte	0x6
	.long	.LASF4
	.uleb128 0x2
	.byte	0x2
	.byte	0x5
	.long	.LASF5
	.uleb128 0x3
	.byte	0x4
	.byte	0x5
	.string	"int"
	.uleb128 0x2
	.byte	0x8
	.byte	0x5
	.long	.LASF6
	.uleb128 0x2
	.byte	0x8
	.byte	0x7
	.long	.LASF7
	.uleb128 0x2
	.byte	0x4
	.byte	0x5
	.long	.LASF8
	.uleb128 0x4
	.byte	0x4
	.uleb128 0x5
	.byte	0x4
	.long	0x73
	.uleb128 0x2
	.byte	0x1
	.byte	0x6
	.long	.LASF9
	.uleb128 0x6
	.long	.LASF12
	.byte	0x3
	.byte	0x24
	.long	0x3a
	.uleb128 0x7
	.byte	0x10
	.byte	0x2
	.byte	0x21
	.long	0xa4
	.uleb128 0x8
	.long	.LASF10
	.byte	0x2
	.byte	0x22
	.long	0xa4
	.uleb128 0x8
	.long	.LASF11
	.byte	0x2
	.byte	0x23
	.long	0x64
	.byte	0x0
	.uleb128 0x9
	.long	0x73
	.long	0xb4
	.uleb128 0xa
	.long	0x25
	.byte	0xf
	.byte	0x0
	.uleb128 0x6
	.long	.LASF13
	.byte	0x2
	.byte	0x24
	.long	0x85
	.uleb128 0xb
	.byte	0x1
	.long	.LASF14
	.byte	0x1
	.byte	0x13
	.byte	0x1
	.long	0x6b
	.long	.LFB0
	.long	.LFE0
	.byte	0x1
	.byte	0x9c
	.long	0x113
	.uleb128 0xc
	.long	.LASF18
	.byte	0x1
	.byte	0x13
	.long	0x6b
	.byte	0x2
	.byte	0x91
	.sleb128 0
	.uleb128 0xd
	.string	"r"
	.byte	0x1
	.byte	0x14
	.long	0x4f
	.byte	0x2
	.byte	0x91
	.sleb128 -24
	.uleb128 0xd
	.string	"sem"
	.byte	0x1
	.byte	0x15
	.long	0x113
	.byte	0x2
	.byte	0x91
	.sleb128 -20
	.uleb128 0xe
	.long	.LASF17
	.long	0x129
	.byte	0x1
	.byte	0x5
	.byte	0x3
	.long	__PRETTY_FUNCTION__.3356
	.byte	0x0
	.uleb128 0x5
	.byte	0x4
	.long	0xb4
	.uleb128 0x9
	.long	0x73
	.long	0x129
	.uleb128 0xa
	.long	0x25
	.byte	0x8
	.byte	0x0
	.uleb128 0xf
	.long	0x119
	.uleb128 0xb
	.byte	0x1
	.long	.LASF15
	.byte	0x1
	.byte	0x1a
	.byte	0x1
	.long	0x4f
	.long	.LFB1
	.long	.LFE1
	.byte	0x1
	.byte	0x9c
	.long	0x18e
	.uleb128 0xd
	.string	"r"
	.byte	0x1
	.byte	0x1c
	.long	0x4f
	.byte	0x2
	.byte	0x74
	.sleb128 36
	.uleb128 0xd
	.string	"i"
	.byte	0x1
	.byte	0x1c
	.long	0x4f
	.byte	0x2
	.byte	0x74
	.sleb128 40
	.uleb128 0xd
	.string	"sem"
	.byte	0x1
	.byte	0x1d
	.long	0x113
	.byte	0x2
	.byte	0x74
	.sleb128 44
	.uleb128 0x10
	.long	.LASF16
	.byte	0x1
	.byte	0x1e
	.long	0x18e
	.byte	0x2
	.byte	0x74
	.sleb128 24
	.uleb128 0xe
	.long	.LASF17
	.long	0x1ae
	.byte	0x1
	.byte	0x5
	.byte	0x3
	.long	__PRETTY_FUNCTION__.3368
	.byte	0x0
	.uleb128 0x9
	.long	0x7a
	.long	0x19e
	.uleb128 0xa
	.long	0x25
	.byte	0x2
	.byte	0x0
	.uleb128 0x9
	.long	0x73
	.long	0x1ae
	.uleb128 0xa
	.long	0x25
	.byte	0x4
	.byte	0x0
	.uleb128 0xf
	.long	0x19e
	.uleb128 0x11
	.long	.LASF22
	.byte	0x1
	.byte	0x31
	.byte	0x1
	.long	0x113
	.long	.LFB2
	.long	.LFE2
	.byte	0x1
	.byte	0x9c
	.long	0x204
	.uleb128 0xc
	.long	.LASF19
	.byte	0x1
	.byte	0x31
	.long	0x6d
	.byte	0x2
	.byte	0x91
	.sleb128 0
	.uleb128 0xc
	.long	.LASF20
	.byte	0x1
	.byte	0x31
	.long	0x4f
	.byte	0x2
	.byte	0x91
	.sleb128 4
	.uleb128 0xc
	.long	.LASF21
	.byte	0x1
	.byte	0x31
	.long	0x25
	.byte	0x2
	.byte	0x91
	.sleb128 8
	.uleb128 0xd
	.string	"s"
	.byte	0x1
	.byte	0x33
	.long	0x113
	.byte	0x2
	.byte	0x91
	.sleb128 -20
	.byte	0x0
	.uleb128 0x11
	.long	.LASF23
	.byte	0x1
	.byte	0x4f
	.byte	0x1
	.long	0x4f
	.long	.LFB3
	.long	.LFE3
	.byte	0x1
	.byte	0x9c
	.long	0x22b
	.uleb128 0x12
	.string	"s"
	.byte	0x1
	.byte	0x4f
	.long	0x113
	.byte	0x2
	.byte	0x91
	.sleb128 0
	.byte	0x0
	.uleb128 0x13
	.long	.LASF27
	.byte	0x1
	.byte	0x54
	.byte	0x1
	.long	0x4f
	.long	.LFB4
	.long	.LFE4
	.byte	0x1
	.byte	0x9c
	.uleb128 0x12
	.string	"s"
	.byte	0x1
	.byte	0x54
	.long	0x113
	.byte	0x2
	.byte	0x91
	.sleb128 0
	.byte	0x0
	.byte	0x0
	.section	.debug_abbrev
	.uleb128 0x1
	.uleb128 0x11
	.byte	0x1
	.uleb128 0x25
	.uleb128 0xe
	.uleb128 0x13
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x1b
	.uleb128 0xe
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x1
	.uleb128 0x10
	.uleb128 0x6
	.byte	0x0
	.byte	0x0
	.uleb128 0x2
	.uleb128 0x24
	.byte	0x0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3e
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0xe
	.byte	0x0
	.byte	0x0
	.uleb128 0x3
	.uleb128 0x24
	.byte	0x0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3e
	.uleb128 0xb
	.uleb128 0x3
	.uleb128 0x8
	.byte	0x0
	.byte	0x0
	.uleb128 0x4
	.uleb128 0xf
	.byte	0x0
	.uleb128 0xb
	.uleb128 0xb
	.byte	0x0
	.byte	0x0
	.uleb128 0x5
	.uleb128 0xf
	.byte	0x0
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0x0
	.byte	0x0
	.uleb128 0x6
	.uleb128 0x16
	.byte	0x0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0x0
	.byte	0x0
	.uleb128 0x7
	.uleb128 0x17
	.byte	0x1
	.uleb128 0xb
	.uleb128 0xb
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x1
	.uleb128 0x13
	.byte	0x0
	.byte	0x0
	.uleb128 0x8
	.uleb128 0xd
	.byte	0x0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.byte	0x0
	.byte	0x0
	.uleb128 0x9
	.uleb128 0x1
	.byte	0x1
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x1
	.uleb128 0x13
	.byte	0x0
	.byte	0x0
	.uleb128 0xa
	.uleb128 0x21
	.byte	0x0
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2f
	.uleb128 0xb
	.byte	0x0
	.byte	0x0
	.uleb128 0xb
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3f
	.uleb128 0xc
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0xc
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x1
	.uleb128 0x40
	.uleb128 0xa
	.uleb128 0x1
	.uleb128 0x13
	.byte	0x0
	.byte	0x0
	.uleb128 0xc
	.uleb128 0x5
	.byte	0x0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0xa
	.byte	0x0
	.byte	0x0
	.uleb128 0xd
	.uleb128 0x34
	.byte	0x0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0xa
	.byte	0x0
	.byte	0x0
	.uleb128 0xe
	.uleb128 0x34
	.byte	0x0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x34
	.uleb128 0xc
	.uleb128 0x2
	.uleb128 0xa
	.byte	0x0
	.byte	0x0
	.uleb128 0xf
	.uleb128 0x26
	.byte	0x0
	.uleb128 0x49
	.uleb128 0x13
	.byte	0x0
	.byte	0x0
	.uleb128 0x10
	.uleb128 0x34
	.byte	0x0
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0xa
	.byte	0x0
	.byte	0x0
	.uleb128 0x11
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0xc
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x1
	.uleb128 0x40
	.uleb128 0xa
	.uleb128 0x1
	.uleb128 0x13
	.byte	0x0
	.byte	0x0
	.uleb128 0x12
	.uleb128 0x5
	.byte	0x0
	.uleb128 0x3
	.uleb128 0x8
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x2
	.uleb128 0xa
	.byte	0x0
	.byte	0x0
	.uleb128 0x13
	.uleb128 0x2e
	.byte	0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x27
	.uleb128 0xc
	.uleb128 0x49
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x1
	.uleb128 0x40
	.uleb128 0xa
	.byte	0x0
	.byte	0x0
	.byte	0x0
	.section	.debug_pubnames,"",@progbits
	.long	0x24
	.value	0x2
	.long	.Ldebug_info0
	.long	0x24f
	.long	0xbf
	.string	"child_fn"
	.long	0x12e
	.string	"main"
	.long	0x0
	.section	.debug_pubtypes,"",@progbits
	.long	0x26
	.value	0x2
	.long	.Ldebug_info0
	.long	0x24f
	.long	0x7a
	.string	"pthread_t"
	.long	0xb4
	.string	"sem_t"
	.long	0x0
	.section	.debug_aranges,"",@progbits
	.long	0x1c
	.value	0x2
	.long	.Ldebug_info0
	.byte	0x4
	.byte	0x0
	.value	0x0
	.value	0x0
	.long	.Ltext0
	.long	.Letext0-.Ltext0
	.long	0x0
	.long	0x0
	.section	.debug_str,"MS",@progbits,1
.LASF13:
	.string	"sem_t"
.LASF21:
	.string	"count"
.LASF22:
	.string	"my_sem_init"
.LASF26:
	.string	"/root/genprog-many-bugs/valgrind-bug-12474-12475/valgrind/helgrind/tests"
.LASF17:
	.string	"__PRETTY_FUNCTION__"
.LASF16:
	.string	"child"
.LASF12:
	.string	"pthread_t"
.LASF1:
	.string	"unsigned char"
.LASF10:
	.string	"__size"
.LASF14:
	.string	"child_fn"
.LASF3:
	.string	"long unsigned int"
.LASF2:
	.string	"short unsigned int"
.LASF19:
	.string	"identity"
.LASF25:
	.string	"tc24_nonzero_sem.c"
.LASF15:
	.string	"main"
.LASF0:
	.string	"unsigned int"
.LASF7:
	.string	"long long unsigned int"
.LASF24:
	.string	"GNU C 4.4.5 20101112 (Red Hat 4.4.5-2)"
.LASF27:
	.string	"my_sem_wait"
.LASF6:
	.string	"long long int"
.LASF9:
	.string	"char"
.LASF11:
	.string	"__align"
.LASF5:
	.string	"short int"
.LASF23:
	.string	"my_sem_destroy"
.LASF8:
	.string	"long int"
.LASF4:
	.string	"signed char"
.LASF20:
	.string	"pshared"
.LASF18:
	.string	"semV"
	.ident	"GCC: (GNU) 4.4.5 20101112 (Red Hat 4.4.5-2)"
	.section	.note.GNU-stack,"",@progbits
