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

            Bug ID: 99577
           Summary: Non-constant (but actually constant) initializers
                    referencing other constants no longer diagnosed as of
                    GCC 8
           Product: gcc
           Version: 10.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: harald at gigawatt dot nl
  Target Milestone: ---

GCC 8 and newer no longer issue an error for

  const int i = 0;
  const int j = i;

Up until GCC 7, this resulted in

test.c:2:15: error: initializer element is not constant
 const int j = i;
               ^

As in the similar (and perhaps related?) bug #66618, the standard does not
require a diagnostic for this code, but this code is not portable, it gets
rejected by some other compilers, so an option in GCC to diagnose this would be
useful.

This bug is the opposite of bug #53091, which asks for this to be accepted and
was never updated after GCC started to accept it. As noted in that bug, clang
accepts this as well without any diagnostic. I will report it as an issue to
them too, if it has not been reported already.

Reply via email to