diff mbox

[Patches] Add variant constexpr support for visit, comparisons and get

Message ID 20161206143703.GM6326@redhat.com
State New
Headers show

Commit Message

Jonathan Wakely Dec. 6, 2016, 2:37 p.m. UTC
On 06/12/16 12:49 +0000, Jonathan Wakely wrote:
>On 06/12/16 03:52 -0800, Tim Shen wrote:

>>On Tue, Dec 6, 2016 at 2:30 AM, Jonathan Wakely wrote:

>>>This looks good - OK for trunk, thanks!

>>

>>Committed.

>>

>>Thanks!

>

>ChangeLog dates fixed by this patch.


And pretty printer fixed by this one.

The "vref" test originally testsed variant<string_view&> but is no
longer needed, as that isn't supported.

Tested x86_64-linux, committed to trunk.
diff mbox

Patch

commit 2f135ef76712b96e3dd799dfbb17e8d16545b115
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Dec 6 14:24:13 2016 +0000

    Fix pretty-printer for std::variant
    
    	* python/libstdcxx/v6/printers.py (StdVariantPrinter): Update for new
    	data member name.
    	* testsuite/libstdc++-prettyprinters/cxx17.cc: Remove redundant test.

diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
index bad42b4..ff428e8 100644
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
@@ -1002,7 +1002,7 @@  class StdVariantPrinter(SingleObjContainerPrinter):
             visualizer = None
         else:
             self.contained_type = alternatives[int(self.index)]
-            addr = val['_M_union']['_M_first']['_M_storage'].address
+            addr = val['_M_u']['_M_first']['_M_storage'].address
             contained_value = addr.cast(self.contained_type.pointer()).dereference()
             visualizer = gdb.default_visualizer(contained_value)
         super (StdVariantPrinter, self).__init__(contained_value, visualizer, 'array')
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
index 96be8c7..69c16c1 100644
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
@@ -86,8 +86,6 @@  main()
 // { dg-final { note-test v3 {std::variant<float, int, std::string_view> [index 1] = {3}} } }
   variant<float, int, string_view> v4{ str };
 // { dg-final { note-test v4 {std::variant<float, int, std::string_view> [index 2] = {"string"}} } }
-  variant<string_view> vref{str};
-// { dg-final { note-test vref {std::variant<std::string_view> [index 0] = {"string"}} } }
 
   map<int, string_view> m{ {1, "one"} };
   map<int, string_view>::node_type n0;