[debuginfo-tests] r313401 - [debuginfo-tests] Add string NRVO test for PR34513

Adrian Prantl via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 21 10:16:12 PDT 2017


It looks like the commits 313775 + 313786 should address this now.
Reid, can you confirm?

Could we get them cherry-picked to 5.0 and un-revert the debuginfo-test?

-- adrian

> On Sep 18, 2017, at 4:56 PM, Hans Wennborg <hans at chromium.org> wrote:
> 
> I've removed the -O1 case from this test in r313600 until r313400 gets
> fixed again.
> 
> On Mon, Sep 18, 2017 at 4:12 PM, Hans Wennborg <hans at chromium.org> wrote:
>> +Tom for 5.0.1.
>> 
>> r313400 was just reverted though, so we'd need to merge it when it relands.
>> 
>> On Sat, Sep 16, 2017 at 9:23 AM, Adrian Prantl <aprantl at apple.com> wrote:
>>> This new test is (expectedly) failing on the clang-5.0 release branch and we
>>> don't branch the debuginfo-tests repository.
>>> 
>>> http://green.lab.llvm.org/green/job/clang-stage1-configure-RA-release-5/83/
>>> 
>>> Since this fixes a regression clang-5.0, I hereby nominate r313400 and
>>> r313399 for clang-5.0.1 if such a thing exists.
>>> 
>>> -- adrian
>>> 
>>> 
>>> 
>>> On Sep 15, 2017, at 2:59 PM, Reid Kleckner via llvm-commits
>>> <llvm-commits at lists.llvm.org> wrote:
>>> 
>>> Author: rnk
>>> Date: Fri Sep 15 14:59:39 2017
>>> New Revision: 313401
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=313401&view=rev
>>> Log:
>>> [debuginfo-tests] Add string NRVO test for PR34513
>>> 
>>> It should pass in -O0 and -O1 after r313400 and r313399.
>>> 
>>> Added:
>>>   debuginfo-tests/trunk/nrvo-string.cpp
>>> 
>>> Added: debuginfo-tests/trunk/nrvo-string.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/debuginfo-tests/trunk/nrvo-string.cpp?rev=313401&view=auto
>>> ==============================================================================
>>> --- debuginfo-tests/trunk/nrvo-string.cpp (added)
>>> +++ debuginfo-tests/trunk/nrvo-string.cpp Fri Sep 15 14:59:39 2017
>>> @@ -0,0 +1,27 @@
>>> +// 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
>>> 
>>> 
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>> 
>>> 



More information about the llvm-commits mailing list