re PR c++/57509 (Segmentation fault when using __builtin_shuffle in templated class.)
commitbedc293e87af0c0322a9dac004dc7b7c86a7579b
authorMarc Glisse <marc.glisse@inria.fr>
Thu, 27 Jun 2013 21:29:22 +0000 (27 23:29 +0200)
committerMarc Glisse <glisse@gcc.gnu.org>
Thu, 27 Jun 2013 21:29:22 +0000 (27 21:29 +0000)
tree37a7ba1615b56c5f026c57c7156e10579e63abcb
parent4a197d64cbb29606c45e52b66dcab8ba287c9177
re PR c++/57509 (Segmentation fault when using __builtin_shuffle in templated class.)

2013-06-27  Marc Glisse  <marc.glisse@inria.fr>

PR c++/57509

gcc/c-family/
* c-common.h (c_build_vec_perm_expr): New complain argument.
* c-common.c (c_build_vec_perm_expr): Likewise.
Use save_expr also in C++.

gcc/cp/
* typeck.c (cp_build_vec_perm_expr): New function.
* cp-tree.h: Declare it.
* parser.c (cp_parser_postfix_expression): Call it.
* pt.c (tsubst_copy): Handle VEC_PERM_EXPR.
(tsubst_copy_and_build): Likewise.

gcc/testsuite/
* g++.dg/ext/pr57509.C: New file.

From-SVN: r200495
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/c-family/c-common.h
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/parser.c
gcc/cp/pt.c
gcc/cp/typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/pr57509.C [new file with mode: 0644]