https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116632
Iain Buclaw <ibuclaw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ibuclaw at gcc dot gnu.org --- Comment #1 from Iain Buclaw <ibuclaw at gcc dot gnu.org> --- This was discussed briefly at the Cauldron, writing here. The "else" clause are for other kinds of verbose compiler messages not related to checking the input user code itself, and only visible in `-v` or `--verbose` mode. I expect these to be written to stderr. For example, `gdc -v` will print out these ErrorKind::messages ``` binary /usr/libexec/gcc/x86_64-linux-gnu/13/d21 version v2.103.1 predefs GNU D_Version2 LittleEndian GNU_DWARF2_Exceptions GNU_StackGrowsDown GNU_InlineAsm D_LP64 D_PIC D_PIE assert D_PreConditions D_PostConditions D_Invariants D_ModuleInfo D_Exceptions D_TypeInfo all X86_64 D_HardFloat Posix linux CRuntime_Glibc CppRuntime_Gcc parse foo importall foo import object (/usr/lib/gcc/x86_64-linux-gnu/13/include/d/object.d) ... ``` The other kind of diagnostic that'll reach here are ErrorKind::tips, again only visible when compiling with `-v` gdc gcc/testsuite/gdc.test/fail_compilation/fail15616b.d -v ``` gcc/testsuite/gdc.test/fail_compilation/fail15616b.d:23:6: note: ‘foo(T)(T a)’ with `T = double` whose parameters have the following constraints: `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` ` > is(T == float) ` `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` 23 | ` > is(T == char) | ^ gcc/testsuite/gdc.test/fail_compilation/fail15616b.d:26:6: note: ‘foo(T)(T a)’ with `T = double` whose parameters have the following constraints: `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` ` > is(T == char) ` `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` 26 | --- | ^ not satisfied constraints are marked with ‘>’ ``` The "tip" being the last line: not satisfied constraints are marked with ‘>’ Everything else goes through the `diagnostic_report_diagnostic` path.