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

            Bug ID: 121063
           Summary: [GCOV] dead "return;"  was marked as executed.
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: gcov-profile
          Assignee: unassigned at gcc dot gnu.org
          Reporter: njuwy at smail dot nju.edu.cn
  Target Milestone: ---

gcc version:
gcc version 16.0.0 20250704 (experimental) (GCC) 

$ cat test.c

#include <errno.h>
#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
void example_func(int x) {
    static int count = 0;
    if (x <= 0)
        return;
    char buffer[32];
    int result = strfromd(buffer, sizeof(buffer), "%g", x * 1.5);
    if (result != 0) {
        errno = EINVAL;
        return;
    }
}
int main(void) {
    example_func(2);
    return 0;
}

$ cat test.c.gcov

        -:    1:#include <errno.h>
        -:    2:#include <inttypes.h>
        -:    3:#include <stdlib.h>
        -:    4:#include <stdio.h>
        1:    5:void example_func(int x) {
        -:    6:    static int count = 0;
        1:    7:    if (x <= 0)
       1*:    8:        return;
        -:    9:    char buffer[32];
        1:   10:    int result = strfromd(buffer, sizeof(buffer), "%g", x *
1.5);
        1:   11:    if (result != 0) {
        1:   12:        errno = EINVAL;
        1:   13:        return;
        -:   14:    }
        -:   15:}
        1:   16:int main(void) {
        1:   17:    example_func(2);
        1:   18:    return 0;
        -:   19:}


Line 8 should not be executed.
  • [Bug gcov-profile/121063] New: ... njuwy at smail dot nju.edu.cn via Gcc-bugs

Reply via email to