<span style>Hello</span><div style><br></div><div style>I am trying to run following test case on Clang compiled output to compare the dwarf inline attributes in the resulting assembly output .</div><div style><br></div><div style>
<div>/* Inlined inline function must have abstract DIE  */</div><div>/* { dg-do compile } */</div><div>/* { dg-options "-O2 -gdwarf-2 -dA -fpreprocessed" } */</div><div>/* { dg-final { scan-assembler "3.*DW_AT_inline" } } */</div>
<div>#1 "test.h"</div><div>inline int t()</div><div>{</div><div>}</div><div>int q()</div><div>{</div><div>  t();</div><div>}</div></div><div style><br></div><div style>The testcase fails because, DW_AT_inline is not present in assembly output. Could anyone let me know why DW_AT_inline is not emitted with Clang compiled assembly output?</div>
<div style>I am aware that Clang uses C99 mode by default.</div><div style><br></div><div style>In case of GCC, </div><div style><div><font color="#222222" face="arial, sans-serif">.uleb128 0x2    @ (DIE (0x25) DW_TAG_subprogram)</font></div>
<div><font color="#222222" face="arial, sans-serif">        .byte   0x1     @ DW_AT_external</font></div><div><font color="#222222" face="arial, sans-serif">        .ascii "t\0"    @ DW_AT_name</font></div><div>
<font color="#222222" face="arial, sans-serif">        .byte   0x1     @ DW_AT_decl_file (test.h)</font></div><div><font color="#222222" face="arial, sans-serif">        .byte   0x1     @ DW_AT_decl_line</font></div><div>
<font color="#222222" face="arial, sans-serif">        .4byte  0x30    @ DW_AT_type</font></div><div><font color="#222222" face="arial, sans-serif">        .byte   0x3     @ DW_AT_inline</font></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">
<br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">In case of Clang,</div><div><div><font color="#222222" face="arial, sans-serif">.byte   4                       @ Abbrev [4] 0x87:0xa DW_TAG_subprogram</font></div>
<div><font color="#222222" face="arial, sans-serif">        .byte   116                     @ DW_AT_name</font></div><div><font color="#222222" face="arial, sans-serif">        .byte   0</font></div><div><font color="#222222" face="arial, sans-serif">        .byte   2                       @ DW_AT_decl_file</font></div>
<div><font color="#222222" face="arial, sans-serif">        .byte   2                       @ DW_AT_decl_line</font></div><div><font color="#222222" face="arial, sans-serif">        .long   128                     @ DW_AT_type</font></div>
<div><font color="#222222" face="arial, sans-serif">        .byte   1                       @ DW_AT_external</font></div><div><font color="#222222" face="arial, sans-serif">        .byte   0                       @ End Of Children Mark</font></div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px"><br></div></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">Is this a bug in LLVM ?</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">
<br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px"><br></div></div>