[gcc/devel/rust/master] Merge #1433

Thomas Schwinge tschwinge@gcc.gnu.org
Sat Aug 6 12:10:21 GMT 2022


https://gcc.gnu.org/g:e77bc10ba13af4e193bbda5f43006d11d9bccb45

commit e77bc10ba13af4e193bbda5f43006d11d9bccb45
Merge: bc65cac0e79 7022b9dd107
Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com>
Date:   Fri Aug 5 09:33:52 2022 +0000

    Merge #1433
    
    1433: Fix bad transmute for aggregate types r=philberty a=philberty
    
    This changes the CONVERT_EXPR to use the same ```*(foo*)&bar``` style cast from
    the c front-end to handle the case of:
    ```
      int a[1];
      int b = (int)a;
    ```
    Which is converted into:
    ```
      int b = *(int*)&a;
    ```
    which the constant folders can turn directly into int b = a[0];
    
    Fixes #1432
    
    
    Co-authored-by: Philip Herron <philip.herron@embecosm.com>

Diff:

 gcc/rust/backend/rust-compile-intrinsic.cc       | 18 +++++-
 gcc/testsuite/rust/compile/torture/issue-1432.rs | 72 ++++++++++++++++++++++++
 2 files changed, 88 insertions(+), 2 deletions(-)


More information about the Gcc-cvs mailing list