| // This ensures that DW_OP_deref is inserted when necessary, such as when NRVO | 
 | // of a string object occurs in C++. | 
 | // | 
 | // RUN: %clangxx -O0 -fno-exceptions %target_itanium_abi_host_triple %s -o %t.out -g | 
 | // RUN: %test_debuginfo %s %t.out | 
 | // RUN: %clangxx -O1 -fno-exceptions %target_itanium_abi_host_triple %s -o %t.out -g | 
 | // RUN: %test_debuginfo %s %t.out | 
 | // | 
 | // PR34513 | 
 |  | 
 | struct string { | 
 |   string() {} | 
 |   string(int i) : i(i) {} | 
 |   ~string() {} | 
 |   int i = 0; | 
 | }; | 
 | string get_string() { | 
 |   string unused; | 
 |   string result = 3; | 
 | // DEBUGGER: break 21 | 
 |   return result; | 
 | } | 
 | int main() { get_string(); } | 
 |  | 
 | // DEBUGGER: r | 
 | // DEBUGGER: print result.i | 
 | // CHECK:  = 3 |