In compiling perlbench in SPEC2006 today, I get the following asm code:
.4byte ($debug_loc2280)
.4byte 1
.4byte PerlIO_fd_refcnt
$set1406 = ($.bss_end)-PerlIO_fd_refcnt
.4byte ($set1406)
.4byte PerlIO_perlio
$set1407 = ($.data_end)-PerlIO_perlio
.4byte ($set1407)
.4byte ($func_begin0)
$set1408 = ($.text_end)-($func_begin0)
.4byte ($set1408)
Gas complains:
perlio.s: Assembler messages:
perlio.s:43549: Error: operation combines symbols in different segments
clang: error: assembler command failed with exit code 1 (use -v to see invocation)
specmake: *** [perlio.o] Error 1
specmake: *** Waiting for unfinished jobs....
regexec.c:3275:111: warning: use of logical '||' with constant operand [-Wconstant
This is on the line
$set1406 = ($.bss_end)-PerlIO_fd_refcnt
.bss
$.bss_end:
.section .rodata.str1.1,"aMS",@progbits,1
$.str34:
.asciz "r"
.size $.str34, 2
.type PerlIO_fd_refcnt,@object
.comm PerlIO_fd_refcnt,8192,4
.type $.str38,@object
$.str38: