Patchwork [ARM] Unbreak ARM bootstrap.

login
register
mail settings
Submitter Ramana Radhakrishnan
Date Aug. 27, 2010, 10:12 a.m.
Message ID <1282903951.23926.25.camel@e102325-lin.cambridge.arm.com>
Download mbox | patch
Permalink /patch/62843/
State New
Headers show

Comments

Ramana Radhakrishnan - Aug. 27, 2010, 10:12 a.m.
Hi, 

This unbreaks bootstraps on arm-linux-gnueabi which started failing
because of issues with warnings of -Werror=c++-compat because the return
value was being type-casted automatically from one enum type to another.

 error: enum conversion in return is invalid in C++ [-Werror=c++-compat]
 error: enum conversion in return is invalid in C++ [-Werror=c
++-compat] 
error: enum conversion in return is invalid in C++ [-Werror=c++-compat]

Verified that stage2 proceeds further with this. Committing as obvious
in the next few minutes unless someone has any objections to this.

cheers
Ramana


        * config/arm/arm.md (enabled): Test the value of arch_enabled
        rather than just using it.
Bernd Schmidt - Aug. 27, 2010, 1:18 p.m.
On 08/27/2010 12:12 PM, Ramana Radhakrishnan wrote:
> Verified that stage2 proceeds further with this. Committing as obvious
> in the next few minutes unless someone has any objections to this.

>  (define_attr "enabled" "no,yes"
>    (if_then_else (eq_attr "insn_enabled" "yes")
> -               (attr "arch_enabled")
> +               (if_then_else (eq_attr "arch_enabled" "yes")
> +                             (const_string "yes")
> +                             (const_string "no"))

No real objection, but IMO it would be nicer to make this work in the
generator programs.


Bernd

Patch

Index: trunk/gcc/config/arm/arm.md
===================================================================
--- trunk/gcc/config/arm/arm.md (revision 163581)
+++ trunk/gcc/config/arm/arm.md (working copy)
@@ -236,7 +236,9 @@ 
 ; Enable all alternatives that are both arch_enabled and insn_enabled.
 (define_attr "enabled" "no,yes"
   (if_then_else (eq_attr "insn_enabled" "yes")
-               (attr "arch_enabled")
+               (if_then_else (eq_attr "arch_enabled" "yes")
+                             (const_string "yes")
+                             (const_string "no"))
                (const_string "no")))
 
 ; POOL_RANGE is how far away from a constant pool entry that this insn