GCC 13 Released

  • >-Ofast, -ffast-math and -funsafe-math-optimizations will no longer add startup code to alter the floating-point environment when producing a shared object with -shared.

    Well, that's a relief. Definitely won't fix anything already built, but it's a nice step in the right direction. The idea of finding out that a shared library is breaking unrelated code is a scary proposition.

  • > -Wxor-used-as-pow

    This seems to only trigger in limited circumstances, one of my favorite accidentally true expression is still warning-free:

        printf("%d\n", 2^5);  // Warning here.
    
        assert((3^2) + (4^2) == (5^2));  // No warnings.
    
    https://gcc.godbolt.org/z/4GqdEMfPb

  • Can anyone please share their experience with Openmp offload? In terms of performance improvement observed, how much effort you had to put in, comparison with any other gpgpu paradigm etc.

    I'm just getting started with it. My _impression_ is that this isn't quite mature yet. On a toy example I was working on, I had trouble beating host only Openmp performance. Cuda thrust was about 5 times faster, while taking about 5x less effort. Just a data point.

  • " -fanalyzer is still only suitable for analyzing C code. In particular, using it on C++ is unlikely to give meaningful output. " Not this time, maybe next time ?

    It's a pleasure to have it for C still

  • Somewhat-opinionated tl;dr:

    * C23 features

    * C++23 features

    * OpenMP work, including v5 / 5.1

    * Support for more AArch64, arm CPUs

    * Support for more Intel CPUs and ISA extensions (man, there are so many of those...)

    * More static analyzer checks

  • I'm still waiting for #embed