https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90279
Jaydeep Chauhan <jaydeepchauhan1494 at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jaydeepchauhan1494 at gmail
dot co
| |m
--- Comment #1 from Jaydeep Chauhan <jaydeepchauhan1494 at gmail dot com> ---
In clang also DW_AT_location attribute is created.
test.cpp:
------
struct StrongType {
explicit StrongType(int val) : m_value(val) { }
int m_value;
};
StrongType Square(StrongType val) {
return StrongType{val.m_value * val.m_value};
}
int EvalDwarfStrong(int var) {
StrongType strongArg{var};
StrongType strongRes = Square(strongArg);
return strongRes.m_value;
}
clang test.cpp -g -S -std=c++11 -Og:
----------------------------------
...
...
.Linfo_string14:
.asciz "strongArg" # string offset=202
...
...
.byte 14 # Abbrev [14] 0xeb:0xf DW_TAG_variable
.long .Ldebug_loc2 # DW_AT_location
.long .Linfo_string14 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 11 # DW_AT_decl_line
.long 87 # DW_AT_type
...
...