@@ -574,8 +574,8 @@ char32_t var33 = f2<void>();
574
574
// DEMANGLED: wchar_t var34
575
575
wchar_t var34;
576
576
577
- // MANGLED: ?$S3 @@3HA
578
- // DEMANGLED: int $S3
577
+ // MANGLED: ?$S4 @@3HA
578
+ // DEMANGLED: int $S4
579
579
// MANGLED: ?var35@@3$$QAHA
580
580
// DEMANGLED: int && var35
581
581
int && var35 = 0 ;
@@ -699,8 +699,8 @@ f9<type13>();
699
699
// DEMANGLED: void f4<(int type14::*)0, (int type14::*)-1>()
700
700
f4<&type14::datamem1, decltype (&type14::datamem1){nullptr }>();
701
701
702
- // MANGLED: ??$f4@$MPQtype15@@H03$MPQ1@H0A@ @@YAXXZ
703
- // DEMANGLED: void f4<(int type15::*)4, (int type15::*)0 >()
702
+ // MANGLED: ??$f4@$MPQtype15@@H03$MPQ1@H0?0 @@YAXXZ
703
+ // DEMANGLED: void f4<(int type15::*)4, (int type15::*)-1 >()
704
704
f4<&type15::datamem2, decltype (&type15::datamem2){nullptr }>();
705
705
706
706
// MANGLED: ??$f4@$MPQtype17@@HF3A@$MPQ1@HFA@?0@@YAXXZ
@@ -842,3 +842,30 @@ struct type21 {
842
842
// MANGLED: ??$f14@Utype21@@@type21@@SAX_VU0@@Z
843
843
// DEMANGLED: void type21::f14<type21>(this type21)
844
844
template void type21::f14 (this type21);
845
+
846
+ namespace std {
847
+ using size_t = decltype (sizeof 0 );
848
+
849
+ template <class T >
850
+ struct tuple_size {};
851
+
852
+ template <size_t I, class T >
853
+ struct tuple_element {};
854
+ }
855
+
856
+ struct type22 {
857
+ int mem1;
858
+
859
+ template <int I>
860
+ int & get () { return mem1; }
861
+ };
862
+
863
+ template <>
864
+ struct std ::tuple_size<type22> { static constexpr auto value = 1 ; };
865
+
866
+ template <>
867
+ struct std ::tuple_element<0 , type22> { using type = int ; };
868
+
869
+ // MANGLED: ?s3@@;AAHA
870
+ // DEMANGLED: int & s3
871
+ auto && [s3] = type22{};
0 commit comments