[Bug c++/104095] New: g++ diagnosis may use non-standard terminology: "constant" instead of "literal", "integer" instead of "integral"

pavel.morozkin at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Jan 18 13:51:32 GMT 2022


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

            Bug ID: 104095
           Summary: g++ diagnosis may use non-standard terminology:
                    "constant" instead of "literal", "integer" instead of
                    "integral"
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pavel.morozkin at gmail dot com
  Target Milestone: ---

$ g++ t589.cpp -std=c++17 -pedantic -Wall -Wextra -c
t589.cpp:24:22: error: overflow in constant expression [-fpermissive]
   24 | enum { y = (int)(1e10) };
      |                      ^
t589.cpp:24:22: error: overflow in constant expression [-fpermissive]
t589.cpp:24:22: error: enumerator value for ‘y’ is not an integer constant

С++ standard does not have "integer constant". С++ standard has "integral
constant".

$ g++ t589.cpp -std=c++11 -pedantic -c
t589.cpp:25:11: warning: use of C++17 hexadecimal floating constant
   25 | float f = 0x0.123p-1f;

С++ standard does not have "hexadecimal floating constant". С++ standard has
"hexadecimal floating literal".

$ g++ t589.cpp -std=c++17 -pedantic -c
t589.cpp:25:1: warning: floating constant truncated to zero [-Woverflow]
   25 | float f = 0x0.123333p-1000f;

С++ standard does not have "floating constant". С++ standard has "floating
literal".


More information about the Gcc-bugs mailing list