Further details:<div><br></div><div>The assembly output from "<font class="Apple-style-span" face="'courier new', monospace">int main() {}</font>", compiled with "<font class="Apple-style-span" face="'courier new', monospace">clang -S -o empty empty.c</font>" is</div>
<div><br></div><div><div><font class="Apple-style-span" face="'courier new', monospace">    .file   "empty.c"</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .text</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .globl  ":main"</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .align  16, 0x90</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">":main":                                # @main</font></div><div><font class="Apple-style-span" face="'courier new', monospace">.Leh_func_begin0:</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"># BB#0:                                 # %entry</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    pushq   %rbp</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.Ltmp0:</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    movq    %rsp, %rbp</font></div><div><font class="Apple-style-span" face="'courier new', monospace">.Ltmp1:</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    movl    $0, %eax</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    popq    %rbp</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    ret</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.Leh_func_end0:</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .section    .eh_frame,"a",@progbits</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.LEH_frame0:</font></div><div><font class="Apple-style-span" face="'courier new', monospace">.Lsection_eh_frame0:</font></div><div><font class="Apple-style-span" face="'courier new', monospace">.Leh_frame_common0:</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.Lset0 = .Leh_frame_common_end0-.Leh_frame_common_begin0 # Length of Common Information Entry</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .long   .Lset0</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.Leh_frame_common_begin0:</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .long   0                       # CIE Identifier Tag</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   1                       # DW_CIE_VERSION</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .asciz   "zR"                   # CIE Augmentation</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   1                       # CIE Code Alignment Factor</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .byte   120                     # CIE Data Alignment Factor</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   16                      # CIE Return Address Column</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .byte   1                       # Augmentation Size</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   3                       # FDE Encoding = udata4</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .byte   12                      # DW_CFA_def_cfa</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   7                       # Register</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .byte   8                       # Offset</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   144                     # DW_CFA_offset + Reg (16)</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .byte   1                       # Offset</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .align  8</font></div><div><font class="Apple-style-span" face="'courier new', monospace">.Leh_frame_common_end0:</font></div><div><font class="Apple-style-span" face="'courier new', monospace">".L:main.eh":</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.Lset1 = .Leh_frame_end0-.Leh_frame_begin0 # Length of Frame Information Entry</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .long   .Lset1</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.Leh_frame_begin0:</font></div><div><font class="Apple-style-span" face="'courier new', monospace">.Lset2 = .Leh_frame_begin0-.Leh_frame_common0 # FDE CIE offset</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .long   .Lset2</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .long   .Leh_func_begin0        # FDE initial location</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.Lset3 = .Leh_func_end0-.Leh_func_begin0 # FDE address range</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .long   .Lset3</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   0                       # Augmentation size</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .byte   4                       # DW_CFA_advance_loc4</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.Lset4 = .Ltmp0-.Leh_func_begin0</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .long   .Lset4</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   14                      # DW_CFA_def_cfa_offset</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .byte   16                      # Offset</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   134                     # DW_CFA_offset + Reg (6)</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .byte   2                       # Offset</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   4                       # DW_CFA_advance_loc4</font></div><div><font class="Apple-style-span" face="'courier new', monospace">.Lset5 = .Ltmp1-.Ltmp0</font></div>
</div><div><div><font class="Apple-style-span" face="'courier new', monospace">    .long   .Lset5</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .byte   13                      # DW_CFA_def_cfa_register</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">    .byte   6                       # Register</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .align  8</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">.Leh_frame_end0:</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br>
</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    .section    .note.GNU-stack,"",@progbits</font></div></div><div><br></div><div>It's pretty clear the colon is being prepended in there, I'm just curious as to why?</div>
<div><br></div><div>Ismail - do you see the same output on your Linux AMD64 system?</div><div><br></div><div>- Lang.<br><br><div class="gmail_quote">2011/1/5 Lang Hames <span dir="ltr"><<a href="mailto:lhames@gmail.com">lhames@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi Török,<div><br></div><div>I should have been more clear on this detail too: My "empty" file contained an empty main function, rather than being completely empty. So the issue with the "missing" main is due to the main symbol being named ":main" instead of "main".</div>

<div><br></div><div>- Lang.<br><br><div class="gmail_quote"><div class="im">2011/1/5 Török Edwin <span dir="ltr"><<a href="mailto:edwintorok@gmail.com" target="_blank">edwintorok@gmail.com</a>></span><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div></div><div>On 2011-01-05 10:19, İsmail Dönmez wrote:<div><div></div><div class="h5"><br>
> Hi;<br>
><br>
> On Wed, Jan 5, 2011 at 10:16 AM, Lang Hames <<a href="mailto:lhames@gmail.com" target="_blank">lhames@gmail.com</a>> wrote:<br>
><br>
>> Specifically I was running with r122866, which was ToT as of earlier today.<br>
>> Updating to r122869, the current ToT, does not fix this issue, and (if I<br>
>> recall correctly) I saw the same issue when I checked clang out on a<br>
>> different AMD64 Ubuntu box a week or so back. Both were Debug+Asserts<br>
>> builds.<br>
>><br>
><br>
> I am also on x86-64 so this might be a Ubuntu specific problem.<br>
<br>
</div></div></div></div><div><div></div><div class="h5">I think this depends on your version of binutils, I get the same on<br>
Debian with gcc on empty file. Ignore the invalid symbol index, the<br>
problem is the missing 'main' function :)<br>
<br>
$ gcc empty.c<br>
<div>/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 0<br>
has invalid symbol index 11<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 1<br>
has invalid symbol index 12<br>
</div>/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 2<br>
has invalid symbol index 2<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 3<br>
has invalid symbol index 2<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 4<br>
<div>has invalid symbol index 11<br>
</div>/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 5<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 6<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 7<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 8<br>
has invalid symbol index 2<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 9<br>
has invalid symbol index 2<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 10<br>
<div>has invalid symbol index 12<br>
</div>/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 11<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 12<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 13<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 14<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 15<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 16<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 17<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 18<br>
has invalid symbol index 13<br>
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 19<br>
has invalid symbol index 13<br>
<div>/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 20<br>
has invalid symbol index 20<br>
</div>/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o: In function<br>
<div>`_start':<br>
(.text+0x20): undefined reference to `main'<br>
</div>collect2: ld returned 1 exit status<br>
<br>
<br>
<br>
><br>
> Regards,<br>
> ismail<br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br></div>
</blockquote></div><br></div>