Re: Commit: ARM: Document -munaligned-access

2012-07-23 Thread Hans-Peter Nilsson
On Fri, 20 Jul 2012, Ryan Mansfield wrote: On 12-07-19 05:33 PM, Hans-Peter Nilsson wrote: Index: changes.html +some source codes generates code that accesses memory on unaligned +adresses. This will require the kernel of those systems to enable adresses - addresses.

[SH] Remove addc1 and subc1

2012-07-23 Thread Oleg Endo
Hello, The attach patch replaces the use of the 'addc1' pattern with 'addc' and the use of the 'subc1' pattern with 'subc'. Tested with make -k check RUNTESTFLAGS=--target_board=sh-sim \{-m2/-ml,-m2/-mb,-m2a/-mb,-m2a-single/-mb,-m4/-ml,-m4/-mb,-m4-single/-ml,

Re: [PATCH, i386]: Fix PR 53961 in a different way

2012-07-23 Thread Uros Bizjak
On Sun, Jul 22, 2012 at 5:39 PM, Uros Bizjak ubiz...@gmail.com wrote: The core of the problem was in fact the possibility of invalid addresses to sneak through various LEA patterns. Attached patch adds handling of SImode SUBREGs of addresses to generic code. This way, we can use one LEA

[Ada] Lock-free implementation of protected objects

2012-07-23 Thread Arnaud Charlet
This patch implements a check in the runtime library that determines whether the current target supports the atomic primitives up to 64 bits. This should fix build failures on e.g. powerpc-darwin. Tested on x86_64-pc-linux-gnu, committed on trunk 2012-07-23 Vincent Pucci pu...@adacore.com

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Arnaud Charlet
Hi Arnaud, You removed Vincent who is the author of this patch, included here. --- s-atopri.adb (revision 189768) +++ s-atopri.adb (working copy) @@ -31,6 +31,58 @@ package body System.Atomic_Primitives is + -- + -- Lock_Free_Read_8 -- +

[Ada] Aspect specifications in subprogram bodies

2012-07-23 Thread Arnaud Charlet
Aspect specification can appear in subprogram bodies. To handle them in the parser the aspects that follow a subprogram specification must be collected, and attached to the proper declaration or body only after the nature of the enclosing construct has been determined. The following must compile

[Ada] Fix to SCOs for SELECT alternatives with guard

2012-07-23 Thread Arnaud Charlet
This change fixes incorrect source location indications in SCOs for decisions corresponding to guard expressions in SELECT statements, which can cause a crash in coverage analysis tools. Tested on x86_64-pc-linux-gnu, committed on trunk 2012-07-23 Thomas Quinot qui...@adacore.com *

[Ada] Missing finalization of transient function result

2012-07-23 Thread Arnaud Charlet
This patch corrects the machinery which detects whether a particular transient context may raise an exception. Examine the original expression of an object declaration node because a function call that returns on the secondary stack may have been rewritten into something else and no longer appear

[Ada] Support for coverage analysis of ACCEPT alternatives in SELECT statement

2012-07-23 Thread Arnaud Charlet
This change ensures that the NULL statement generated for coverage analysis purposes in an otherwise empty ACCEPT alternative is not eliminated by GIGI or the code generator by setting its Comes_From_Source flag. Tested on x86_64-pc-linux-gnu, committed on trunk 2012-07-23 Thomas Quinot

[Ada] Improve GNAT dimensionality checking system

2012-07-23 Thread Arnaud Charlet
For GNAT dimensionality checking system, accept constant declaration whose type is a dimensioned type when an initialization expression with dimension is present. The test presented below highlights this new patch: -- Source -- with System.Dim.Mks_IO; use

[Ada] User-defined indexing operations

2012-07-23 Thread Arnaud Charlet
A user-defined indexing operation can have more than one index, for example to describe user-defined matrix types. The following must compile quietly: gcc -c -gnat12 test_indexing.adb --- with Ada.Text_IO; use Ada.Text_IO; with Project; use Project; with Matrix_3x3s; use Matrix_3x3s;

[Ada] Clean up of heap objects in the context of accessibility failures

2012-07-23 Thread Arnaud Charlet
This patch reimplements the way accessibility checks are performed on heap- allocated class-wide objects. The checks now contain clean up code which finalizes (if applicable) and deallocates the object. Tested on x86_64-pc-linux-gnu, committed on trunk 2012-07-23 Hristian Kirtchev

[Ada] Element allocators in indefinite containers need accessibility checks

2012-07-23 Thread Arnaud Charlet
Various operations in the indefinite containers perform initialized allocators for elements, and accessibility checks are required on those allocators which can fail when the actual type for Element_Type is a class-wide type and the operation is passed an element value of a type extension declared

[Ada] Ambiguities with class-wide operations on synchronized types

2012-07-23 Thread Arnaud Charlet
This patch fixes the code that implements AI05-0090, a check for ambiguities in calls to primitive operations of tagged synchronized types. No small example available. Tested on x86_64-pc-linux-gnu, committed on trunk 2012-07-23 Ed Schonberg schonb...@adacore.com * sem_ch4.adb

[Ada] Always analyze loop body during semantic analysis in Alfa mode

2012-07-23 Thread Arnaud Charlet
In Alfa mode for formal verification, the loop form with an iterator is not expanded, thus the analysis of the loop body should be done during semantic analysis. Tested on x86_64-pc-linux-gnu, committed on trunk 2012-07-23 Yannick Moy m...@adacore.com * sem_ch5.adb

[Ada] Crash on private enumeration type when compiling with -gnatVa

2012-07-23 Thread Arnaud Charlet
This patch corrects the retrieval of the base type of an enumeration subtype. In certain cases the base type may be a private type, therefore the compiler must inspect its full view. Tested on x86_64-pc-linux-gnu, committed on trunk 2012-07-23 Hristian Kirtchev kirtc...@adacore.com *

[Ada] New restrictions for the lock-free implementation of protected objects

2012-07-23 Thread Arnaud Charlet
This patch updates the restrictions of the lock-free implementation. Furthermore, it also catches every error messages issued by the routine Allows_Lock_Free_Implementation. The test below illustrates some of the new restrictions: -- Source -- package Typ is

Re: [PATCH, frv-linux] Silence warning

2012-07-23 Thread nick clifton
Hi JBG, warning: implicit declaration of function ‘frv_ifcvt_machdep_init’ warning: no previous prototype for ‘frv_ifcvt_machdep_init’ oops! gcc/ 2012-07-21 Jan-Benedict Glaw jbg...@lug-owl.de * config/frv/frv-protos.h: Update copyright year, include

Re: [patch] Profiling infrastructure TLC (1/n)

2012-07-23 Thread Richard Guenther
On Sun, Jul 22, 2012 at 12:40 AM, Steven Bosscher stevenb@gmail.com wrote: Hello, This patch cleans up some interesting things in GCC's profiling support. The most significant changes are the removal of BB_TO_GCOV_INDEX and after_tree_profile. Another visible cleanup is that

Re: [patch][gcov] Clarify the internals a bit

2012-07-23 Thread Richard Guenther
On Sun, Jul 22, 2012 at 4:34 PM, Steven Bosscher stevenb@gmail.com wrote: Hello, While reading up on how gcov/profiling works, I noticed that there are a lot of places where the notes file is still referred to as the basic block graph file. Also, the gcov manual has not been updated for

Re: [patch] PR53881 - again

2012-07-23 Thread Richard Guenther
On Mon, Jul 23, 2012 at 1:23 AM, Steven Bosscher stevenb@gmail.com wrote: Hello, This patch fixes PR53881 by making group_case_labels_stmt look at the CFG instead of relying on label equality. Bootstrappedtested on powerpc64-unknown-linux-gnu. OK? Ok. Thanks, Richard. Ciao! Steven

Re: [PATCH, AArch64] Allow symbol+offset as symbolic constant expression

2012-07-23 Thread Marcus Shawcroft
On 06/07/12 16:31, Ian Bolton wrote: Hi, This patch reduces codesize for cases such as this one: int arr[100]; int foo () { return arr[10]; } Before the patch, the code looked like this: adrp x0, arr add x0, x0, :lo12:arr ldr w0, [x0,40] Now, it looks like this: adrp x0, arr+40

[PATCH, ARM] Skip gcc.dg/torture/stackalign/builtin-apply-2.c for ARM hard-float ABI

2012-07-23 Thread Julian Brown
Hi, The test case gcc.dg/torture/stackalign/builtin-apply-2.c makes assumptions which cannot be met for __builtin_apply for the ARM hard-float ABI variant. This patch simply skips the test in that case. Tested (stackalign.exp only) for ARMv4t -marm/-mthumb/-mfloat-abi=hard. The

[PATCH] Use local-decls in aliased vars dumping

2012-07-23 Thread Richard Guenther
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2012-07-23 Richard Guenther rguent...@suse.de * tree-ssa-alias.c (dump_alias_info): Walk over local decls instead of referenced vars. Index: gcc/tree-ssa-alias.c

Re: [PATCH, ARM] Skip gcc.dg/torture/stackalign/builtin-apply-2.c for ARM hard-float ABI

2012-07-23 Thread Richard Earnshaw
On 23/07/12 13:17, Julian Brown wrote: Hi, The test case gcc.dg/torture/stackalign/builtin-apply-2.c makes assumptions which cannot be met for __builtin_apply for the ARM hard-float ABI variant. This patch simply skips the test in that case. Tested (stackalign.exp only) for ARMv4t

[PATCH, ARM] Split all insns before pool placement (Re: [PATCH, ARM] Fix length attributes for sync.md patterns)

2012-07-23 Thread Ulrich Weigand
Richard Earnshaw wrote: Hmm, I wonder if we should just unconditionally call split_all_insns() at the start of md_reorg when -O0. This would address your problem, but have the added benefit that the length calculations would be more accurate. We're going to have to split the insns anyway

[patch] Move sbitmap dataflow functions from sbitmap.c to cfganal.c

2012-07-23 Thread Steven Bosscher
Hello, $SUBJECT because it makes sbitmap.c independent of basic-block.h -- as it should be, given that sbitmap is just a very simple bitmap datatype. Bootstrapped (profiledbootstrapped, actually) and tested on x86_64-unknown-linux-gnu. OK for trunk? Ciao! Steven * sbitmap.h

Re: [PATCH, frv-linux] Silence warning

2012-07-23 Thread nick clifton
Hi JBG, 2012-07-21 Jan-Benedict Glaw jbg...@lug-owl.de * config/frv/frv-protos.h: Update copyright year, include basic-block.h (for ce_if_block_t). (frv_ifcvt_machdep_init): Declare. Approved - please apply. My key isn't set-up for committing to GCC (only for

[PATCH] Fix PR53616

2012-07-23 Thread Richard Guenther
This should fix PR53616, loop distribution can change partition ordering when merging non-builtin partitions again, not honoring read-after-write dependences. The patch simply avoids any change in ordering. Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. Richard. 2012-07-23

Re: [patch] Move sbitmap dataflow functions from sbitmap.c to cfganal.c

2012-07-23 Thread Richard Guenther
On Mon, Jul 23, 2012 at 3:59 PM, Steven Bosscher stevenb@gmail.com wrote: Hello, $SUBJECT because it makes sbitmap.c independent of basic-block.h -- as it should be, given that sbitmap is just a very simple bitmap datatype. Bootstrapped (profiledbootstrapped, actually) and tested on

[PATCH, ARM] Add test for ARMv7-M interrupt function dynamic stack realignment

2012-07-23 Thread Julian Brown
Hi, GCC has had a feature for many years to realign the stack for interrupt-handler functions (marked with __attribute__((interrupt))) on Cortex-M-series devices (IIRC, this was a workaround for a hardware issue, or perhaps some unforeseen circumstance when the stack could become misaligned in

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Arnaud Charlet
This patch implements a check in the runtime library that determines whether the current target supports the atomic primitives up to 64 bits. If I understand the name of the flag, it looks like an all or nothing for atomic primitives? Right. is that a consequence of the language

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Iain Sandoe
On 23 Jul 2012, at 15:27, Arnaud Charlet wrote: With the following, bootstrap completed on powerpc-apple-darwin9, and make check-ada shows no new fails. Should I apply it? Looks good to me, go ahead, although I'm a bit surprised that you got an error, can you clarify what error you got?

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Geert Bosch
On Jul 23, 2012, at 10:32, Iain Sandoe wrote: Looks good to me, go ahead, although I'm a bit surprised that you got an error, can you clarify what error you got? IIRC, that the flag was undefined. If it's important I can revert the fix in my local tree and re-build. Iaim No need to do

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Arnaud Charlet
With the following, bootstrap completed on powerpc-apple-darwin9, and make check-ada shows no new fails. Should I apply it? Looks good to me, go ahead, although I'm a bit surprised that you got an error, can you clarify what error you got? IIRC, that the flag was undefined.

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Arnaud Charlet
Looks good to me, go ahead, although I'm a bit surprised that you got an error, can you clarify what error you got? IIRC, that the flag was undefined. If it's important I can revert the fix in my local tree and re-build. Iaim No need to do that. Indeed, the flag must be defined

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Vincent PUCCI
On 07/23/2012 10:43 AM, Arnaud Charlet wrote: With the following, bootstrap completed on powerpc-apple-darwin9, and make check-ada shows no new fails. Should I apply it? Looks good to me, go ahead, although I'm a bit surprised that you got an error, can you clarify what error you got? IIRC,

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Arnaud Charlet
The swicth is defaulted to be False in Targparm. However, as far as I understood in Targparm, the switch must be present in all system.ads packages but I may be wrong. That sounds wrong and isn't how other flags work. Vincent, can you please double check exactly what's happening, and in

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Iain Sandoe
On 23 Jul 2012, at 15:57, Arnaud Charlet wrote: The swicth is defaulted to be False in Targparm. However, as far as I understood in Targparm, the switch must be present in all system.ads packages but I may be wrong. That sounds wrong and isn't how other flags work. Vincent, can you

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Vincent PUCCI
On 07/23/2012 11:03 AM, Iain Sandoe wrote: On 23 Jul 2012, at 15:57, Arnaud Charlet wrote: That sounds wrong and isn't how other flags work. Vincent, can you please double check exactly what's happening, and in particular verify that a missing flag in system-target.ads will NOT cause an

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Geert Bosch
On Jul 23, 2012, at 10:24, Iain Sandoe wrote: This patch implements a check in the runtime library that determines whether the current target supports the atomic primitives up to 64 bits. If I understand the name of the flag, it looks like an all or nothing for atomic primitives? is that

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Arnaud Charlet
FWIW, I checked the build transcript for the failed case: s-atopri.adb:40:10: Support_Atomic_Primitives is undefined (more references follow) make[8]: *** [s-atopri.o] Error 1 cheers Iain Just got the same error... investigating Ah, so the issue is not in the compiler/targpam, but in

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Geert Bosch
On Jul 23, 2012, at 10:45, Arnaud Charlet wrote: No, as we agreed and discussed, the flag does NOT have to be defined for all versions of system.ads, so this is a bug that needs to be fixed (precisely for the issue raised here: we don't want unknown or new ports to be broken by default).

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Arnaud Charlet
Having a default can't work, as s-atopri.adb needs access to the flag. Only the front end itself can use a default, not the run time. Well, this means the current design is broken and s-atopri.adb needs to be modified. As we discussed, we cannot assume that System.Support_Atomic_Primitives

[PATCH] PR target/53633; disable return value warnings for naked functions

2012-07-23 Thread Sandra Loosemore
This is a revised version of Paul Brook's patch from two years ago: http://gcc.gnu.org/ml/gcc-patches/2010-06/msg01088.html I've updated the patch per the review comments from that time, and also extended it to handle a similar warning from the C++ front end. I have so far only tested this on

Re: [PATCH, ARM] Skip gcc.dg/torture/stackalign/builtin-apply-2.c for ARM hard-float ABI

2012-07-23 Thread Ramana Radhakrishnan
On 23 July 2012 16:41, Julian Brown jul...@codesourcery.com wrote: On Mon, 23 Jul 2012 14:40:59 +0100 Richard Earnshaw rearn...@arm.com wrote: On 23/07/12 13:17, Julian Brown wrote: Hi, The test case gcc.dg/torture/stackalign/builtin-apply-2.c makes assumptions which cannot be met for

RE: [PATCH] Decimal Floating-Point (libbid) for GNU/Hurd

2012-07-23 Thread decimalfp
Hello Thomas, Just a follow-up - have those changes been made? Thank you, Marius Cornea -Original Message- From: H.J. Lu [mailto:hjl.to...@gmail.com] Sent: Saturday, June 16, 2012 7:35 AM To: Thomas Schwinge Cc: decimalfp; gcc-patches@gcc.gnu.org Subject: Re: [PATCH] Decimal

Re: [PATCH, ARM] Split all insns before pool placement (Re: [PATCH, ARM] Fix length attributes for sync.md patterns)

2012-07-23 Thread Richard Earnshaw
On 23/07/12 14:57, Ulrich Weigand wrote: Richard Earnshaw wrote: Hmm, I wonder if we should just unconditionally call split_all_insns() at the start of md_reorg when -O0. This would address your problem, but have the added benefit that the length calculations would be more accurate. We're

Re: [PATCH, ARM] Split all insns before pool placement

2012-07-23 Thread Ulrich Weigand
Richard Earnshaw wrote: On 23/07/12 14:57, Ulrich Weigand wrote: * config/arm/arm.c (arm_reorg): Ensure all insns are split. OK. Checked in now. Is this OK for 4.7 as well? Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE

[cxx-conversion] Update hash-table to new coding conventions. (issue6430066)

2012-07-23 Thread Lawrence Crowl
Change new C++ code to follow the new C++ coding conventions. This patch is part one, which changes to out-of-line method definitions and does other minor changes. Part two will fix the spacing problems. The two-part approach makes diffs sensible. Index: gcc/ChangeLog.cxx-conversion

Re: [Ada] Lock-free implementation of protected objects

2012-07-23 Thread Geert Bosch
On Jul 23, 2012, at 11:21, Geert Bosch wrote: On Jul 23, 2012, at 10:45, Arnaud Charlet wrote: No, as we agreed and discussed, the flag does NOT have to be defined for all versions of system.ads, so this is a bug that needs to be fixed (precisely for the issue raised here: we don't want

Re: [PATCH, ARM] Split all insns before pool placement

2012-07-23 Thread Richard Earnshaw
On 23/07/12 18:29, Ulrich Weigand wrote: Richard Earnshaw wrote: On 23/07/12 14:57, Ulrich Weigand wrote: * config/arm/arm.c (arm_reorg): Ensure all insns are split. OK. Checked in now. Is this OK for 4.7 as well? Bye, Ulrich Leave it a couple of days, just in case something odd

[PATCH, i386]: Make ix86_lea_outperform static and cleanup LEA split helpers

2012-07-23 Thread Uros Bizjak
Hello! No functional changes. 2012-07-23 Uros Bizjak ubiz...@gmail.com * config/i386/i386-protos.c (ix86_lea_outperforms): Remove prototype. * config/i386/i386.c (ix86_lea_outperforms): Make static. Make split_cost argument signed. (ix86_avoid_lea_for_add):

Re: [Patch, fortran] PR44354 implied-do-loop array constructors using the induction variable in the bounds

2012-07-23 Thread Mikael Morin
On 23/07/2012 07:58, Tobias Burnus wrote: Mikael Morin wrote: Here is another attempt. I moved the diagnostic code from gfc_resolve_iterator to resolve_array_list, so that it doesn't trigger for do loops. Regression test in progress. OK? The patch looks OK: Though, I wonder why you only

Re: [patch] Move lowering of switches to bit tests to GIMPLE

2012-07-23 Thread Steven Bosscher
On Sun, Jul 1, 2012 at 11:58 AM, Richard Guenther richard.guent...@gmail.com wrote: We have to think about the point in the pass pipeline where we want to do this (and the rest of) lowering. At the moment switch-conversion runs before profile-data is read and thus cannot do a very good job. I

[PATCH, Android] Runtime stack protector enabling for Android target

2012-07-23 Thread Igor Zamyatin
Hi! Since this change for stack-protector enabling hurts mingw compiler (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53980 and http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00638.html) we'd like to make change more general. Please see new patch in attachment. Tested in android

Re: Updated to respond to various email comments from Jason, Diego and Cary (issue6197069)

2012-07-23 Thread Cary Coutant
But if the consensus turns out to be that enumerators should be in pubnames, wouldn't it also be fairly easy to change prune_unused_types so that it doesn't mark enumerators, and change output_pubnames to skip enumerators that have been pruned? This makes sense to me. Enclosed is a patch

Re: [Patch] PR 51938: extend ifcombine

2012-07-23 Thread Marc Glisse
On Wed, 20 Jun 2012, Richard Guenther wrote: On Sun, Jun 10, 2012 at 4:16 PM, Marc Glisse marc.gli...@inria.fr wrote: Hello, currently, tree-ssa-ifcombine handles pairs of imbricated ifs that share the same then branch, or the same else branch. There is no particular reason why it couldn't

[cxx-conversion] Update hash-table to new coding conventions. (Part 2) (issue6435049)

2012-07-23 Thread Lawrence Crowl
Change new C++ code to follow the new C++ coding conventions. This patch is part two, which changes the spacing for the bodies of methods formerly defined in-class. The two-part approach makes diffs sensible. Index: gcc/ChangeLog.cxx-conversion 2012-07-23 Lawrence Crowl cr...@google.com

[google/gcc-4_7] Backport Fission patches from trunk (issue6405076)

2012-07-23 Thread Cary Coutant
This patch is for the google/gcc-4_7 branch. It backports five Fission patches from trunk, with two minor differences: - The DW_AT_GNU_pubnames and DW_AT_GNU_pubtypes attributes are both generated, and provide the offset to the corresponding pubnames/pubtypes section. This is done for

Re: [SH] PR 51244 - Remove T_REG alternatives from load/store patterns

2012-07-23 Thread Kaz Kojima
Oleg Endo oleg.e...@t-online.de wrote: This removes T_REG alternatives from various load/store patterns. Tested with make -k check RUNTESTFLAGS=--target_board=sh-sim \{-m2/-ml,-m2/-mb,-m2a/-mb,-m2a-single/-mb,-m4/-ml,-m4/-mb,-m4-single/-ml, -m4-single/-mb,-m4a-single/-ml,-m4a-single/-mb}

Re: [SH] Remove addc1 and subc1

2012-07-23 Thread Kaz Kojima
Oleg Endo oleg.e...@t-online.de wrote: The attach patch replaces the use of the 'addc1' pattern with 'addc' and the use of the 'subc1' pattern with 'subc'. Tested with make -k check RUNTESTFLAGS=--target_board=sh-sim \{-m2/-ml,-m2/-mb,-m2a/-mb,-m2a-single/-mb,-m4/-ml,-m4/-mb,-m4-single/-ml,

Re: [SH] PR 53511 - Cleanup leftovers

2012-07-23 Thread Kaz Kojima
Oleg Endo oleg.e...@t-online.de wrote: This removes the fmac related combine helper construct that was used before fma. Tested with make -k check RUNTESTFLAGS=--target_board=sh-sim \{-m2/-ml,-m2/-mb,-m2a/-mb,-m2a-single/-mb,-m4/-ml,-m4/-mb,-m4-single/-ml,

[PATCH] Improve ifcombine (PR 52005)

2012-07-23 Thread Andrew Pinski
This patch improves ifcombine by doing two things. First tries to see if the then and else are swapped and handles that case. Also it handles the case where the else or then cases have an empty basic block instead of just fall through. OK? Bootstrapped and tested on x86_64-linux-gnu with no