re PR c++/57415 (New PPC testsuite failure C++ compound literarl expr unimplemented)

PR c++/57415
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Use TARGET_EXPR for C++.

From-SVN: r199616
This commit is contained in:
Jason Merrill 2013-06-03 14:19:30 -04:00 committed by Jason Merrill
parent 1baf9159af
commit ec3af349a6
2 changed files with 34 additions and 10 deletions

View file

@ -1,3 +1,9 @@
2013-06-03 Jason Merrill <jason@redhat.com>
PR c++/57415
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Use TARGET_EXPR for C++.
2013-06-03 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/57268

View file

@ -3822,11 +3822,20 @@ altivec_resolve_overloaded_builtin (location_t loc, tree fndecl,
TREE_USED (decl) = 1;
TREE_TYPE (decl) = arg1_type;
TREE_READONLY (decl) = TYPE_READONLY (arg1_type);
DECL_INITIAL (decl) = arg1;
stmt = build1 (DECL_EXPR, arg1_type, decl);
TREE_ADDRESSABLE (decl) = 1;
SET_EXPR_LOCATION (stmt, loc);
stmt = build1 (COMPOUND_LITERAL_EXPR, arg1_type, stmt);
if (c_dialect_cxx ())
{
stmt = build4 (TARGET_EXPR, arg1_type, decl, arg1,
NULL_TREE, NULL_TREE);
SET_EXPR_LOCATION (stmt, loc);
}
else
{
DECL_INITIAL (decl) = arg1;
stmt = build1 (DECL_EXPR, arg1_type, decl);
TREE_ADDRESSABLE (decl) = 1;
SET_EXPR_LOCATION (stmt, loc);
stmt = build1 (COMPOUND_LITERAL_EXPR, arg1_type, stmt);
}
innerptrtype = build_pointer_type (arg1_inner_type);
@ -3901,11 +3910,20 @@ altivec_resolve_overloaded_builtin (location_t loc, tree fndecl,
TREE_USED (decl) = 1;
TREE_TYPE (decl) = arg1_type;
TREE_READONLY (decl) = TYPE_READONLY (arg1_type);
DECL_INITIAL (decl) = arg1;
stmt = build1 (DECL_EXPR, arg1_type, decl);
TREE_ADDRESSABLE (decl) = 1;
SET_EXPR_LOCATION (stmt, loc);
stmt = build1 (COMPOUND_LITERAL_EXPR, arg1_type, stmt);
if (c_dialect_cxx ())
{
stmt = build4 (TARGET_EXPR, arg1_type, decl, arg1,
NULL_TREE, NULL_TREE);
SET_EXPR_LOCATION (stmt, loc);
}
else
{
DECL_INITIAL (decl) = arg1;
stmt = build1 (DECL_EXPR, arg1_type, decl);
TREE_ADDRESSABLE (decl) = 1;
SET_EXPR_LOCATION (stmt, loc);
stmt = build1 (COMPOUND_LITERAL_EXPR, arg1_type, stmt);
}
innerptrtype = build_pointer_type (arg1_inner_type);