Files
clang-p2996/cross-project-tests/debuginfo-tests/dexter-tests/nrvo-string.cpp
Stephen Tozer 262520a3c5 [Dexter] Remove builder from Dexter
See "discussion":
  https://discourse.llvm.org/t/rfc-dexter-feature-removals/60462

This patch removes the builder functionality from Dexter, as it is an active
maintenance burden and is no longer required since Dexter is being invoked by
other test runners that can handle the build step better, and there has been no
objection that it is still needed.

Differential Revision: https://reviews.llvm.org/D151465
2023-08-21 15:08:11 +01:00

57 lines
1.5 KiB
C++

// Purpose:
// This ensures that DW_OP_deref is inserted when necessary, such as when
// NRVO of a string object occurs in C++.
//
// REQUIRES: !asan, compiler-rt, lldb
// UNSUPPORTED: system-windows
// Zorg configures the ASAN stage2 bots to not build the asan
// compiler-rt. Only run this test on non-asanified configurations.
//
// RUN: %clang -O0 -glldb -fno-exceptions %s -o %t
// RUN: %dexter --fail-lt 1.0 -w \
// RUN: --binary %t --debugger 'lldb' -- %s
//
// RUN: %clang -O1 -glldb -fno-exceptions %s -o %t
// RUN: %dexter --fail-lt 1.0 -w \
// RUN: --binary %t --debugger 'lldb' -- %s
//
// PR34513
volatile int sideeffect = 0;
void __attribute__((noinline)) stop() { sideeffect++; }
struct string {
string() {}
string(int i) : i(i) {}
~string() {}
int i = 0;
};
string __attribute__((noinline)) get_string() {
string unused;
string output = 3;
stop(); // DexLabel('string-nrvo')
return output;
}
void some_function(int) {}
struct string2 {
string2() = default;
string2(string2 &&other) { i = other.i; }
int i;
};
string2 __attribute__((noinline)) get_string2() {
string2 output;
output.i = 5;
some_function(output.i);
// Test that the debugger can get the value of output after another
// function is called.
stop(); // DexLabel('string2-nrvo')
return output;
}
int main() {
get_string();
get_string2();
}
// DexExpectWatchValue('output.i', 3, on_line=ref('string-nrvo'))
// DexExpectWatchValue('output.i', 5, on_line=ref('string2-nrvo'))