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.

Reply via email to