Fix PR middle-end/95395

Message ID 15602460.Zf6vLrg5uU@polaris
State New
Headers show
Series
  • Fix PR middle-end/95395
Related show

Commit Message

Eric Botcazou June 2, 2020, 11:18 a.m.
The usual stupid confusion between bits and bytes...  The tree-pretty-print.c 
hunk is unrelated and has been approved by Richard elsewhere.

Tested on SPARC64/Linux, applied on the mainline as obvious.


2020-06-02 Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/95395
	* optabs.c (expand_unop): Fix bits/bytes confusion in latest change.

	* tree-pretty-print.c (dump_generic_node) <ARRAY_TYPE>: Print quals.

-- 
Eric Botcazou

Patch

diff --git a/gcc/optabs.c b/gcc/optabs.c
index 7a4ec1ec01c..6d0b76c13ba 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -2892,7 +2892,7 @@  expand_unop (machine_mode mode, optab unoptab, rtx op0, rtx target,
 	  /* We do not provide a 128-bit bswap in libgcc so force the use of
 	     a double bswap for 64-bit targets.  */
 	  if (GET_MODE_SIZE (int_mode) == 2 * UNITS_PER_WORD
-	      && (UNITS_PER_WORD == 64
+	      && (UNITS_PER_WORD == 8
 		  || optab_handler (unoptab, word_mode) != CODE_FOR_nothing))
 	    {
 	      temp = expand_doubleword_bswap (mode, op0, target);
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index f04fd65091a..7d581214022 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -1899,8 +1899,16 @@  dump_generic_node (pretty_printer *pp, tree node, int spc, dump_flags_t flags,
 
     case ARRAY_TYPE:
       {
+	unsigned int quals = TYPE_QUALS (node);
 	tree tmp;
 
+	if (quals & TYPE_QUAL_ATOMIC)
+	  pp_string (pp, "atomic ");
+	if (quals & TYPE_QUAL_CONST)
+	  pp_string (pp, "const ");
+	if (quals & TYPE_QUAL_VOLATILE)
+	  pp_string (pp, "volatile ");
+
 	/* Print the innermost component type.  */
 	for (tmp = TREE_TYPE (node); TREE_CODE (tmp) == ARRAY_TYPE;
 	     tmp = TREE_TYPE (tmp))