https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111415

stephematician <stephematician.acct at proton dot me> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |stephematician.acct@proton.
                   |                            |me

--- Comment #3 from stephematician <stephematician.acct at proton dot me> ---
I encountered what I believe is the same bug while compiling an R package for
CRAN.

I reduced the code to the following example which produces errors on 12.4,
13.1-13.3, 14.1-14.2.

An array-bounds warning occurs with -O1, -O2, and -O3, but not with -Os.

Compiled with flags: -fpic -std=c++20 -Wall

#include <cstddef>
#include <vector>

inline std::vector<double> adjust_pvalues(const std::vector<double> &
unadjusted) {

    const size_t n_pvalue = unadjusted.size();
    if (n_pvalue < 2) return unadjusted;

    /* Include this line and -O1 thru to -O3 give warnings */
    const std::vector<size_t> index(n_pvalue);
    /* NOTE: Can eliminate warning by removing second argument */
    std::vector<double> adjusted(n_pvalue, 0.0);

    return adjusted;
}

int main(int argc, char ** argv) {
    std::vector<double> x(2);
    x = adjust_pvalues(x);
    return 0;
}


The above snippet is currently available on godbolt:
https://godbolt.org/z/38nnaEcrf
  • [Bug tree-optimization/1... stephematician.acct at proton dot me via Gcc-bugs

Reply via email to