From 257d5f32cee1fa8d51d2adb3cd71f8bf9823a7a5 Mon Sep 17 00:00:00 2001 From: Volker Reichelt Date: Thu, 9 Dec 2004 10:34:21 +0000 Subject: re PR c++/18073 (mmintrin.h rejected by C++ frontend) PR c++/18073 * typeck.c (build_reinterpret_cast_1): Allow cast from vector type. * g++.dg/other/mmintrin.C: New test. From-SVN: r91929 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/typeck.c | 2 ++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/other/mmintrin.C | 4 ++++ 4 files changed, 16 insertions(+) create mode 100644 gcc/testsuite/g++.dg/other/mmintrin.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2d73639..202e416 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2004-12-09 Volker Reichelt + + PR c++/18073 + * typeck.c (build_reinterpret_cast_1): Allow cast from vector type. + 2004-12-09 Nathan Sidwell PR c++/16681 diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index a26bff4..74380d3 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -4956,6 +4956,8 @@ build_reinterpret_cast_1 (tree type, tree expr, bool c_cast_p, } else if (TREE_CODE (type) == VECTOR_TYPE) return fold_if_not_in_template (convert_to_vector (type, expr)); + else if (TREE_CODE (intype) == VECTOR_TYPE) + return fold_if_not_in_template (convert_to_integer (type, expr)); else { if (valid_p) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d8ad0ad..54b1dfe 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-12-09 Volker Reichelt + + PR c++/18073 + * g++.dg/other/mmintrin.C: New test. + 2004-12-09 Nathan Sidwell PR c++/16681 diff --git a/gcc/testsuite/g++.dg/other/mmintrin.C b/gcc/testsuite/g++.dg/other/mmintrin.C new file mode 100644 index 0000000..417a1ac --- /dev/null +++ b/gcc/testsuite/g++.dg/other/mmintrin.C @@ -0,0 +1,4 @@ +// { dg-do compile { target i?86-*-* x86_64-*-* } } +// { dg-options "-msse" } + +#include -- cgit v1.1