From 30402573869ec1e624da994d10a9501e9b500d80 Mon Sep 17 00:00:00 2001 From: Michael Meissner Date: Fri, 21 Aug 2009 23:14:32 +0000 Subject: [PATCH] Fix 40671, 41145 From-SVN: r151004 --- gcc/ChangeLog | 11 +++++++++++ gcc/config/rs6000/rs6000.c | 20 ++++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a250853ab4a..38d4dcc7978 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2009-08-21 Michael Meissner + + PR target/40671 + * config/rs6000/rs6000.c (rs6000_override_options): Use + TARGET_64BIT instead of TARGET_POWERPC64 to set the size of + pointers. + + PR target/41145 + * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix + reporting of vector + decimal/boolean/complex, + 2009-08-21 Jakub Jelinek * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index ab209a8058a..95f8ab5aae2 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -2198,7 +2198,7 @@ rs6000_override_options (const char *default_cpu) }; /* Set the pointer size. */ - if (TARGET_POWERPC64) + if (TARGET_64BIT) { rs6000_pmode = (int)DImode; rs6000_pointer_size = 64; @@ -22827,7 +22827,15 @@ rs6000_handle_altivec_attribute (tree *node, mode = TYPE_MODE (type); /* Check for invalid AltiVec type qualifiers. */ - if (!TARGET_VSX) + if (type == long_double_type_node) + error ("use of % in AltiVec types is invalid"); + else if (type == boolean_type_node) + error ("use of boolean types in AltiVec types is invalid"); + else if (TREE_CODE (type) == COMPLEX_TYPE) + error ("use of % in AltiVec types is invalid"); + else if (DECIMAL_FLOAT_MODE_P (mode)) + error ("use of decimal floating point types in AltiVec types is invalid"); + else if (!TARGET_VSX) { if (type == long_unsigned_type_node || type == long_integer_type_node) { @@ -22845,14 +22853,6 @@ rs6000_handle_altivec_attribute (tree *node, else if (type == double_type_node) error ("use of % in AltiVec types is invalid without -mvsx"); } - else if (type == long_double_type_node) - error ("use of % in AltiVec types is invalid"); - else if (type == boolean_type_node) - error ("use of boolean types in AltiVec types is invalid"); - else if (TREE_CODE (type) == COMPLEX_TYPE) - error ("use of % in AltiVec types is invalid"); - else if (DECIMAL_FLOAT_MODE_P (mode)) - error ("use of decimal floating point types in AltiVec types is invalid"); switch (altivec_type) { -- 2.11.4.GIT