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
...
...

Reply via email to