https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87170
Bug ID: 87170 Summary: compiler complains about not referenced character literals if they are only used in string literals Product: gcc Version: 8.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada Assignee: unassigned at gcc dot gnu.org Reporter: ievgenii.meshcheriakov at here dot com Target Milestone: --- Created attachment 44637 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44637&action=edit Example file demonstrating the bug Gnat generates warnings about unused character literals when they are only used in string literal like demonstrated in the attached simplified example. The type Bit values are only used inside definition of Bits. The compiler generates the following warnings: % gnatchop bug.ada splitting bug.ada into: bug.ads bug.adb % gnatmake -gnatwa bug.adb x86_64-linux-gnu-gcc-8 -c -gnatwa bug.adb bug.adb:3:17: warning: literal "'0'" is not referenced bug.adb:3:22: warning: literal "'1'" is not referenced While values of Bit are not used directly they are still used in the definition of Bits, so the warning should not be generated. The warning is not generated when definitions are changed as follows: type Bit is (Zero, One); ... constant Bits : constant Bit_Array := (Zero, One);