aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshok Thirumurthi <ashok.thirumurthi@intel.com>2013-07-31 15:58:01 +0000
committerAshok Thirumurthi <ashok.thirumurthi@intel.com>2013-07-31 15:58:01 +0000
commit6629791fa6e1a2621db0309ab657d03d82a62ebe (patch)
treeae3f14a8ce5dfffaa07967afe742ad94959bf714
parent384ba771966b2b1f6682158d926f4186441e9696 (diff)
downloadlldb-6629791fa6e1a2621db0309ab657d03d82a62ebe.tar.gz
Updated the LLDB rvalue reference test to cross-reference with a bugzilla report,
provide more detail on compiler compatibility, and to illustrate that this is an issue with expression evaluation. - Note that clang doesn't emit DW_TAG_const_type, which might be okay if there's no such thing as a non-const rvalue reference. How about foo(make_int())? git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@187499 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/lang/cpp/rvalue-references/TestRvalueReferences.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/test/lang/cpp/rvalue-references/TestRvalueReferences.py b/test/lang/cpp/rvalue-references/TestRvalueReferences.py
index c8e9ed244..9c9f08f19 100644
--- a/test/lang/cpp/rvalue-references/TestRvalueReferences.py
+++ b/test/lang/cpp/rvalue-references/TestRvalueReferences.py
@@ -6,7 +6,7 @@ import lldb
from lldbtest import *
import lldbutil
-class CPPThisTestCase(TestBase):
+class RvalueReferencesTestCase(TestBase):
mydir = os.path.join("lang", "cpp", "rvalue-references")
@@ -20,8 +20,9 @@ class CPPThisTestCase(TestBase):
self.static_method_commands()
#rdar://problem/11479676
- @expectedFailureClang
+ @expectedFailureClang # pr16762: Expression evaluation of an rvalue-reference does not show the correct type.
@expectedFailureGcc # GCC (4.7) does not emit correct DWARF tags for rvalue-references
+ @expectedFailureIcc # ICC (13.1, 14-beta) do not emit DW_TAG_rvalue_reference_type.
@dwarf_test
def test_with_dwarf_and_run_command(self):
"""Test that rvalues are supported in the C++ expression parser"""
@@ -43,8 +44,14 @@ class CPPThisTestCase(TestBase):
self.runCmd("process launch", RUN_SUCCEEDED)
+ # Note that clang as of r187480 doesn't emit DW_TAG_const_type, unlike gcc 4.8.1
+ # With gcc 4.8.1, lldb reports the type as (int &&const)
+ self.expect("frame variable i",
+ startstr = "(int &&",
+ substrs = ["i = 0x", "&i = 3"])
+
self.expect("expression -- i",
- startstr = "(int &&) $0 =",
+ startstr = "(int &&",
substrs = ["3"])
self.expect("breakpoint delete 1")