+// { dg-options "-fdump-tree-gimple" }
// { dg-do compile { target c++17 } }
#include <variant>
};
std::variant<NonEmpty> vNonEmpty(std::in_place_type<NonEmpty>);
-// { dg-final { scan-assembler-dem-not "(std::in_place_type_t<NonEmpty>)" } }
+// { dg-final { scan-tree-dump-not "std::variant<NonEmpty>::variant" "gimple" } }
std::variant<NonTrivial> vNonTrivial(std::in_place_type<NonTrivial>);
-// { dg-final { scan-assembler-dem-not "(std::in_place_type_t<NonTrivial>)" } }
+// { dg-final { scan-tree-dump-not "std::variant<NonTrivial>::variant" "gimple" } }
std::variant<int, NonTrivial> vNonTrivialNonConstexpr(std::in_place_index<1>, 2);
-// { dg-final { scan-assembler-dem "(std::in_place_index_t<1ul?>, int&&)" } }
+// { dg-final { scan-tree-dump "std::variant<int, NonTrivial>::variant" "gimple" } }
std::variant<TrivialEmpty> vTrivialEmpty(std::in_place_type<TrivialEmpty>);
-// { dg-final { scan-assembler-dem-not "(std::in_place_type_t<TrivialEmpty>)" } }
+// { dg-final { scan-tree-dump-not "std::variant<TrivialEmpty>::variant" "gimple" } }
std::variant<NonTrivialEmpty> vNonTrivialEmpty(std::in_place_type<NonTrivialEmpty>);
-// { dg-final { scan-assembler-dem-not "(std::in_place_type_t<NonTrivialEmpty>)" } }
+// { dg-final { scan-tree-dump-not "std::variant<NonTrivialEmpty>::variant" "gimple" } }
std::variant<int, NonTrivialEmpty> vNonTrivialEmptyNonConstexpr(std::in_place_index<1>, 2.0);
-// { dg-final { scan-assembler-dem "(std::in_place_index_t<1ul?>, double&&)" } }
+// { dg-final { scan-tree-dump "std::variant<int, NonTrivialEmpty>::variant" "gimple" } }
-// { dg-options "-D_GLIBCXX_USE_VARIANT_CXX17_OLD_ABI" }
+// { dg-options "-fdump-tree-gimple -D_GLIBCXX_USE_VARIANT_CXX17_OLD_ABI" }
// { dg-do compile { target c++17 } }
#include <variant>
};
std::variant<NonEmpty> vNonEmpty(std::in_place_type<NonEmpty>);
-// { dg-final { scan-assembler-dem-not "(std::in_place_type_t<NonEmpty>)" } }
+// { dg-final { scan-tree-dump-not "std::variant<NonEmpty>::variant" "gimple" } }
std::variant<NonTrivial> vNonTrivial(std::in_place_type<NonTrivial>);
-// { dg-final { scan-assembler-dem "(std::in_place_type_t<NonTrivial>)" { target { ! c++20 } } } }
-// { dg-final { scan-assembler-dem-not "(std::in_place_type_t<NonTrivial>)" { target c++20 } } }
+// { dg-final { scan-tree-dump "std::variant<NonTrivial>::variant" "gimple" { target { ! c++20 } } } }
+// { dg-final { scan-tree-dump-not "std::variant<NonTrivial>::variant" "gimple" { target c++20 } } }
std::variant<int, NonTrivial> vNonTrivialNonConstexpr(std::in_place_index<1>, 2);
-// { dg-final { scan-assembler-dem "(std::in_place_index_t<1ul?>, int&&)" } }
+// { dg-final { scan-tree-dump "std::variant<int, NonTrivial>::variant" "gimple" } }
std::variant<TrivialEmpty> vTrivialEmpty(std::in_place_type<TrivialEmpty>);
-// { dg-final { scan-assembler-dem-not "(std::in_place_type_t<TrivialEmpty>)" } }
+// { dg-final { scan-tree-dump-not "std::variant<TrivialEmpty>::variant" "gimple" } }
std::variant<NonTrivialEmpty> vNonTrivialEmpty(std::in_place_type<NonTrivialEmpty>);
-// { dg-final { scan-assembler-dem "(std::in_place_type_t<NonTrivialEmpty>)" { target { ! c++20 } } } }
-// { dg-final { scan-assembler-dem-not "(std::in_place_type_t<NonTrivialEmpty>)" { target c++20 } } }
+// { dg-final { scan-tree-dump "std::variant<NonTrivialEmpty>::variant" "gimple" { target { ! c++20 } } } }
+// { dg-final { scan-tree-dump-not "std::variant<NonTrivialEmpty>::variant" "gimple" { target c++20 } } }
std::variant<int, NonTrivialEmpty> vNonTrivialEmptyNonConstexpr(std::in_place_index<1>, 2.0);
-// { dg-final { scan-assembler-dem "(std::in_place_index_t<1ul?>, double&&)" } }
-
+// { dg-final { scan-tree-dump "std::variant<int, NonTrivialEmpty>::variant" "gimple" } }