public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Macros active in error messages
@ 2020-11-22 15:34 emre brookes
  2020-11-22 18:16 ` Jonathan Wakely
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: emre brookes @ 2020-11-22 15:34 UTC (permalink / raw)
  To: gcc-help

I was compiling a project and received an odd message that took some 
digging.
e.g.

file.cpp:#:#: error: expected unqualified-id before numeric constant
# | if ( inttype == MyClass::ERROR )
                              ^~~~~
where MyClass::ERROR is an enum.

Took some digging to find out ERROR was somewhere #define'd and the cure 
was to #undef ERROR
Could never find out *where* it was defined - recursively searched all 
include files of the project and /usr/include etc.
Regardless, it would have been very helpful to know in the error 
messages that a #define was active or to have the ERROR replaced by the 
macro substitution.

Is it possible to get any macro expansion information in error messages?
I didn't see a compiler flag for to get this information, but I might 
have missed it.
If not, it would be a nice feature to have.

Cheers,
Emre.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Macros active in error messages
  2020-11-22 15:34 Macros active in error messages emre brookes
@ 2020-11-22 18:16 ` Jonathan Wakely
  2020-11-24 22:19 ` Martin Sebor
  2020-11-24 22:38 ` Florian Weimer
  2 siblings, 0 replies; 9+ messages in thread
From: Jonathan Wakely @ 2020-11-22 18:16 UTC (permalink / raw)
  To: emre brookes; +Cc: gcc-help

On Sun, 22 Nov 2020, 15:35 emre brookes, <brookes@uthscsa.edu> wrote:

> I was compiling a project and received an odd message that took some
> digging.
> e.g.
>
> file.cpp:#:#: error: expected unqualified-id before numeric constant
> # | if ( inttype == MyClass::ERROR )
>                               ^~~~~
> where MyClass::ERROR is an enum.
>
> Took some digging to find out ERROR was somewhere #define'd and the cure
> was to #undef ERROR
> Could never find out *where* it was defined - recursively searched all
> include files of the project and /usr/include etc.
>


I know it's not your main question, but ...

g++ -E -dD foo.cc will show all the macro definitions.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Macros active in error messages
  2020-11-22 15:34 Macros active in error messages emre brookes
  2020-11-22 18:16 ` Jonathan Wakely
@ 2020-11-24 22:19 ` Martin Sebor
  2020-11-25  1:14   ` emre brookes
  2020-11-24 22:38 ` Florian Weimer
  2 siblings, 1 reply; 9+ messages in thread
From: Martin Sebor @ 2020-11-24 22:19 UTC (permalink / raw)
  To: emre brookes, gcc-help

On 11/22/20 8:34 AM, emre brookes wrote:
> I was compiling a project and received an odd message that took some 
> digging.
> e.g.
> 
> file.cpp:#:#: error: expected unqualified-id before numeric constant
> # | if ( inttype == MyClass::ERROR )
>                               ^~~~~
> where MyClass::ERROR is an enum.
> 
> Took some digging to find out ERROR was somewhere #define'd and the cure 
> was to #undef ERROR
> Could never find out *where* it was defined - recursively searched all 
> include files of the project and /usr/include etc.
> Regardless, it would have been very helpful to know in the error 
> messages that a #define was active or to have the ERROR replaced by the 
> macro substitution.
> 
> Is it possible to get any macro expansion information in error messages?
> I didn't see a compiler flag for to get this information, but I might 
> have missed it.
> If not, it would be a nice feature to have.

I'd expect to see output similar to the below where the error points
to the macro.  I'm not sure under what conditions it won't (with some
specific options perhaps?)  If you can create an isolated test case
showing it doesn't I'd recommend to open a bug in Bugzilla (or just
follow up here).

Martin

$ cat a.C && gcc -S a.C
struct MyClass { enum { ERROR = 1 }; };

#define ERROR 1

int f (int inttype)
{
   if (inttype == MyClass::ERROR)
     return 0;
   return 1;
}
a.C: In function ‘int f(int)’:
a.C:3:15: error: expected unqualified-id before numeric constant
     3 | #define ERROR 1
       |               ^
a.C:7:27: note: in expansion of macro ‘ERROR’
     7 |   if (inttype == MyClass::ERROR)
       |                           ^~~~~
a.C:7:25: error: expected ‘)’ before numeric constant
     7 |   if (inttype == MyClass::ERROR)
       |      ~                  ^
       |                         )

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Macros active in error messages
  2020-11-22 15:34 Macros active in error messages emre brookes
  2020-11-22 18:16 ` Jonathan Wakely
  2020-11-24 22:19 ` Martin Sebor
@ 2020-11-24 22:38 ` Florian Weimer
  2020-11-25  1:09   ` emre brookes
  2 siblings, 1 reply; 9+ messages in thread
From: Florian Weimer @ 2020-11-24 22:38 UTC (permalink / raw)
  To: emre brookes; +Cc: gcc-help

* emre brookes:

> I was compiling a project and received an odd message that took some
> digging.
> e.g.
>
> file.cpp:#:#: error: expected unqualified-id before numeric constant
> # | if ( inttype == MyClass::ERROR )
>                              ^~~~~
> where MyClass::ERROR is an enum.
>
> Took some digging to find out ERROR was somewhere #define'd and the
> cure was to #undef ERROR
> Could never find out *where* it was defined - recursively searched all
> include files of the project and /usr/include etc.
> Regardless, it would have been very helpful to know in the error
> messages that a #define was active or to have the ERROR replaced by
> the macro substitution.

Do you use distcc or ccache to build your project?

Thanks,
Florian
-- 
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Macros active in error messages
  2020-11-24 22:38 ` Florian Weimer
@ 2020-11-25  1:09   ` emre brookes
  0 siblings, 0 replies; 9+ messages in thread
From: emre brookes @ 2020-11-25  1:09 UTC (permalink / raw)
  To: Florian Weimer; +Cc: gcc-help

Florian Weimer wrote:
> * emre brookes:
>
>> I was compiling a project and received an odd message that took some
>> digging.
>> e.g.
>>
>> file.cpp:#:#: error: expected unqualified-id before numeric constant
>> # | if ( inttype == MyClass::ERROR )
>>                               ^~~~~
>> where MyClass::ERROR is an enum.
>>
>> Took some digging to find out ERROR was somewhere #define'd and the
>> cure was to #undef ERROR
>> Could never find out *where* it was defined - recursively searched all
>> include files of the project and /usr/include etc.
>> Regardless, it would have been very helpful to know in the error
>> messages that a #define was active or to have the ERROR replaced by
>> the macro substitution.
> Do you use distcc or ccache to build your project?
>
> Thanks,
> Florian
No use of distcc or ccache.
$ g++ --version
g++.exe (Rev5, Built by MSYS2 project) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.

Thanks,
Emre


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Macros active in error messages
  2020-11-24 22:19 ` Martin Sebor
@ 2020-11-25  1:14   ` emre brookes
  2020-11-27 15:54     ` emre brookes
  0 siblings, 1 reply; 9+ messages in thread
From: emre brookes @ 2020-11-25  1:14 UTC (permalink / raw)
  To: Martin Sebor, gcc-help

Martin Sebor wrote:
> On 11/22/20 8:34 AM, emre brookes wrote:
>> I was compiling a project and received an odd message that took some 
>> digging.
>> e.g.
>>
>> file.cpp:#:#: error: expected unqualified-id before numeric constant
>> # | if ( inttype == MyClass::ERROR )
>>                               ^~~~~
>> where MyClass::ERROR is an enum.
>>
>> Took some digging to find out ERROR was somewhere #define'd and the 
>> cure was to #undef ERROR
>> Could never find out *where* it was defined - recursively searched 
>> all include files of the project and /usr/include etc.
>> Regardless, it would have been very helpful to know in the error 
>> messages that a #define was active or to have the ERROR replaced by 
>> the macro substitution.
>>
>> Is it possible to get any macro expansion information in error messages?
>> I didn't see a compiler flag for to get this information, but I might 
>> have missed it.
>> If not, it would be a nice feature to have.
>
> I'd expect to see output similar to the below where the error points
> to the macro.  I'm not sure under what conditions it won't (with some
> specific options perhaps?)  If you can create an isolated test case
> showing it doesn't I'd recommend to open a bug in Bugzilla (or just
> follow up here).
>
> Martin
>
> $ cat a.C && gcc -S a.C
> struct MyClass { enum { ERROR = 1 }; };
>
> #define ERROR 1
>
> int f (int inttype)
> {
>   if (inttype == MyClass::ERROR)
>     return 0;
>   return 1;
> }
> a.C: In function ‘int f(int)’:
> a.C:3:15: error: expected unqualified-id before numeric constant
>     3 | #define ERROR 1
>       |               ^
> a.C:7:27: note: in expansion of macro ‘ERROR’
>     7 |   if (inttype == MyClass::ERROR)
>       |                           ^~~~~
> a.C:7:25: error: expected ‘)’ before numeric constant
>     7 |   if (inttype == MyClass::ERROR)
>       |      ~                  ^
>       |                         )
> .
>
I get the same results for your example code. Here gcc nicely identifies 
the macro expansion :)
Will test later with compiler flags from the project's Makefile add see 
if I can reproduce the issue I observed on a simple case.

Thanks,
Emre



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Macros active in error messages
  2020-11-25  1:14   ` emre brookes
@ 2020-11-27 15:54     ` emre brookes
  2020-11-27 16:02       ` Jonathan Wakely
  0 siblings, 1 reply; 9+ messages in thread
From: emre brookes @ 2020-11-27 15:54 UTC (permalink / raw)
  To: Martin Sebor, gcc-help

emre brookes wrote:
> Martin Sebor wrote:
>> On 11/22/20 8:34 AM, emre brookes wrote:
>>> I was compiling a project and received an odd message that took some 
>>> digging.
>>> e.g.
>>>
>>> file.cpp:#:#: error: expected unqualified-id before numeric constant
>>> # | if ( inttype == MyClass::ERROR )
>>>                               ^~~~~
>>> where MyClass::ERROR is an enum.
>>>
>>> Took some digging to find out ERROR was somewhere #define'd and the 
>>> cure was to #undef ERROR
>>> Could never find out *where* it was defined - recursively searched 
>>> all include files of the project and /usr/include etc.
>>> Regardless, it would have been very helpful to know in the error 
>>> messages that a #define was active or to have the ERROR replaced by 
>>> the macro substitution.
>>>
>>> Is it possible to get any macro expansion information in error 
>>> messages?
>>> I didn't see a compiler flag for to get this information, but I 
>>> might have missed it.
>>> If not, it would be a nice feature to have.
>>
>> I'd expect to see output similar to the below where the error points
>> to the macro.  I'm not sure under what conditions it won't (with some
>> specific options perhaps?)  If you can create an isolated test case
>> showing it doesn't I'd recommend to open a bug in Bugzilla (or just
>> follow up here).
>>
>> Martin
>>
>> $ cat a.C && gcc -S a.C
>> struct MyClass { enum { ERROR = 1 }; };
>>
>> #define ERROR 1
>>
>> int f (int inttype)
>> {
>>   if (inttype == MyClass::ERROR)
>>     return 0;
>>   return 1;
>> }
>> a.C: In function ‘int f(int)’:
>> a.C:3:15: error: expected unqualified-id before numeric constant
>>     3 | #define ERROR 1
>>       |               ^
>> a.C:7:27: note: in expansion of macro ‘ERROR’
>>     7 |   if (inttype == MyClass::ERROR)
>>       |                           ^~~~~
>> a.C:7:25: error: expected ‘)’ before numeric constant
>>     7 |   if (inttype == MyClass::ERROR)
>>       |      ~                  ^
>>       |                         )
>> .
>>
> I get the same results for your example code. Here gcc nicely 
> identifies the macro expansion :)
> Will test later with compiler flags from the project's Makefile add 
> see if I can reproduce the issue I observed on a simple case.
>
> Thanks,
> Emre
Followup:
strange error

555 0 mingw [eb@ebwin764] ~/gccerrortest $ gcc --version
gcc.exe (Rev5, Built by MSYS2 project) 10.2.0

key takeway -
on msys2 64 bit
macro expansion information is lost when the #define ERROR is in an 
include file in /mingw64/x86_64-w64-mingw32/include
if i move the include file elsewhere (tested /usr/include and .) - 
normal behavior
linux variants tested did not show this behavior
centos 8 gcc (GCC) 9.2.1 20191120 (Red Hat 9.2.1-2)
centos 8 gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
ubuntu 20 gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

Should I create a bugzilla for gcc? Might be some msys2 issue. Not sure.

---
Partial evidence:

549 0 mingw [eb@ebwin764] ~/gccerrortest $ cat a.C
struct MyClass { enum { ERROR = 1 }; };

#include <a.h>

int f (int inttype)
{
    if (inttype == MyClass::ERROR)
       return 0;
    return 1;
}
550 0 mingw [eb@ebwin764] ~/gccerrortest $ cat b.C
struct MyClass { enum { ERROR = 1 }; };

#include <b.h>

int f (int inttype)
{
    if (inttype == MyClass::ERROR)
       return 0;
    return 1;
}
551 0 mingw [eb@ebwin764] ~/gccerrortest $ cat a.h
#define ERROR 0
552 0 mingw [eb@ebwin764] ~/gccerrortest $ cat 
/mingw64/x86_64-w64-mingw32/include/b.h
#define ERROR 0
553 0 mingw [eb@ebwin764] ~/gccerrortest $ gcc -I. a.C
In file included from a.C:3:
a.C: In function 'int f(int)':
./a.h:1:15: error: expected unqualified-id before numeric constant
     1 | #define ERROR 0
       |               ^
a.C:7:28: note: in expansion of macro 'ERROR'
     7 |    if (inttype == MyClass::ERROR)
       |                            ^~~~~
a.C:7:26: error: expected ')' before numeric constant
     7 |    if (inttype == MyClass::ERROR)
       |       ~                  ^
       |                          )
554 0 mingw [eb@ebwin764] ~/gccerrortest $ gcc -I 
/mingw64/x86_64-w64-mingw32/include b.C
In file included from b.C:3:
b.C: In function 'int f(int)':
b.C:7:28: error: expected unqualified-id before numeric constant
     7 |    if (inttype == MyClass::ERROR)
       |                            ^~~~~
b.C:7:26: error: expected ')' before numeric constant
     7 |    if (inttype == MyClass::ERROR)
       |       ~                  ^
       |                          )
555 0 mingw [eb@ebwin764] ~/gccerrortest $




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Macros active in error messages
  2020-11-27 15:54     ` emre brookes
@ 2020-11-27 16:02       ` Jonathan Wakely
  2020-11-27 19:42         ` emre brookes
  0 siblings, 1 reply; 9+ messages in thread
From: Jonathan Wakely @ 2020-11-27 16:02 UTC (permalink / raw)
  To: emre brookes; +Cc: Martin Sebor, gcc-help

On Fri, 27 Nov 2020 at 15:57, emre brookes <brookes@uthscsa.edu> wrote:
>
> emre brookes wrote:
> > Martin Sebor wrote:
> >> On 11/22/20 8:34 AM, emre brookes wrote:
> >>> I was compiling a project and received an odd message that took some
> >>> digging.
> >>> e.g.
> >>>
> >>> file.cpp:#:#: error: expected unqualified-id before numeric constant
> >>> # | if ( inttype == MyClass::ERROR )
> >>>                               ^~~~~
> >>> where MyClass::ERROR is an enum.
> >>>
> >>> Took some digging to find out ERROR was somewhere #define'd and the
> >>> cure was to #undef ERROR
> >>> Could never find out *where* it was defined - recursively searched
> >>> all include files of the project and /usr/include etc.
> >>> Regardless, it would have been very helpful to know in the error
> >>> messages that a #define was active or to have the ERROR replaced by
> >>> the macro substitution.
> >>>
> >>> Is it possible to get any macro expansion information in error
> >>> messages?
> >>> I didn't see a compiler flag for to get this information, but I
> >>> might have missed it.
> >>> If not, it would be a nice feature to have.
> >>
> >> I'd expect to see output similar to the below where the error points
> >> to the macro.  I'm not sure under what conditions it won't (with some
> >> specific options perhaps?)  If you can create an isolated test case
> >> showing it doesn't I'd recommend to open a bug in Bugzilla (or just
> >> follow up here).
> >>
> >> Martin
> >>
> >> $ cat a.C && gcc -S a.C
> >> struct MyClass { enum { ERROR = 1 }; };
> >>
> >> #define ERROR 1
> >>
> >> int f (int inttype)
> >> {
> >>   if (inttype == MyClass::ERROR)
> >>     return 0;
> >>   return 1;
> >> }
> >> a.C: In function ‘int f(int)’:
> >> a.C:3:15: error: expected unqualified-id before numeric constant
> >>     3 | #define ERROR 1
> >>       |               ^
> >> a.C:7:27: note: in expansion of macro ‘ERROR’
> >>     7 |   if (inttype == MyClass::ERROR)
> >>       |                           ^~~~~
> >> a.C:7:25: error: expected ‘)’ before numeric constant
> >>     7 |   if (inttype == MyClass::ERROR)
> >>       |      ~                  ^
> >>       |                         )
> >> .
> >>
> > I get the same results for your example code. Here gcc nicely
> > identifies the macro expansion :)
> > Will test later with compiler flags from the project's Makefile add
> > see if I can reproduce the issue I observed on a simple case.
> >
> > Thanks,
> > Emre
> Followup:
> strange error
>
> 555 0 mingw [eb@ebwin764] ~/gccerrortest $ gcc --version
> gcc.exe (Rev5, Built by MSYS2 project) 10.2.0
>
> key takeway -
> on msys2 64 bit
> macro expansion information is lost when the #define ERROR is in an
> include file in /mingw64/x86_64-w64-mingw32/include
> if i move the include file elsewhere (tested /usr/include and .) -
> normal behavior
> linux variants tested did not show this behavior
> centos 8 gcc (GCC) 9.2.1 20191120 (Red Hat 9.2.1-2)
> centos 8 gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
> ubuntu 20 gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
>
> Should I create a bugzilla for gcc? Might be some msys2 issue. Not sure.

I think this is the expected behaviour when the macro is defined in a
system header, although I'm not convinced it's useful. I think there's
already a bugzilla about it.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Macros active in error messages
  2020-11-27 16:02       ` Jonathan Wakely
@ 2020-11-27 19:42         ` emre brookes
  0 siblings, 0 replies; 9+ messages in thread
From: emre brookes @ 2020-11-27 19:42 UTC (permalink / raw)
  To: Jonathan Wakely; +Cc: Martin Sebor, gcc-help

Jonathan Wakely wrote:
> On Fri, 27 Nov 2020 at 15:57, emre brookes <brookes@uthscsa.edu> wrote:
>> emre brookes wrote:
>>> Martin Sebor wrote:
>>>> On 11/22/20 8:34 AM, emre brookes wrote:
>>>>> I was compiling a project and received an odd message that took some
>>>>> digging.
>>>>> e.g.
>>>>>
>>>>> file.cpp:#:#: error: expected unqualified-id before numeric constant
>>>>> # | if ( inttype == MyClass::ERROR )
>>>>>                                ^~~~~
>>>>> where MyClass::ERROR is an enum.
>>>>>
>>>>> Took some digging to find out ERROR was somewhere #define'd and the
>>>>> cure was to #undef ERROR
>>>>> Could never find out *where* it was defined - recursively searched
>>>>> all include files of the project and /usr/include etc.
>>>>> Regardless, it would have been very helpful to know in the error
>>>>> messages that a #define was active or to have the ERROR replaced by
>>>>> the macro substitution.
>>>>>
>>>>> Is it possible to get any macro expansion information in error
>>>>> messages?
>>>>> I didn't see a compiler flag for to get this information, but I
>>>>> might have missed it.
>>>>> If not, it would be a nice feature to have.
>>>> I'd expect to see output similar to the below where the error points
>>>> to the macro.  I'm not sure under what conditions it won't (with some
>>>> specific options perhaps?)  If you can create an isolated test case
>>>> showing it doesn't I'd recommend to open a bug in Bugzilla (or just
>>>> follow up here).
>>>>
>>>> Martin
>>>>
>>>> $ cat a.C && gcc -S a.C
>>>> struct MyClass { enum { ERROR = 1 }; };
>>>>
>>>> #define ERROR 1
>>>>
>>>> int f (int inttype)
>>>> {
>>>>    if (inttype == MyClass::ERROR)
>>>>      return 0;
>>>>    return 1;
>>>> }
>>>> a.C: In function ‘int f(int)’:
>>>> a.C:3:15: error: expected unqualified-id before numeric constant
>>>>      3 | #define ERROR 1
>>>>        |               ^
>>>> a.C:7:27: note: in expansion of macro ‘ERROR’
>>>>      7 |   if (inttype == MyClass::ERROR)
>>>>        |                           ^~~~~
>>>> a.C:7:25: error: expected ‘)’ before numeric constant
>>>>      7 |   if (inttype == MyClass::ERROR)
>>>>        |      ~                  ^
>>>>        |                         )
>>>> .
>>>>
>>> I get the same results for your example code. Here gcc nicely
>>> identifies the macro expansion :)
>>> Will test later with compiler flags from the project's Makefile add
>>> see if I can reproduce the issue I observed on a simple case.
>>>
>>> Thanks,
>>> Emre
>> Followup:
>> strange error
>>
>> 555 0 mingw [eb@ebwin764] ~/gccerrortest $ gcc --version
>> gcc.exe (Rev5, Built by MSYS2 project) 10.2.0
>>
>> key takeway -
>> on msys2 64 bit
>> macro expansion information is lost when the #define ERROR is in an
>> include file in /mingw64/x86_64-w64-mingw32/include
>> if i move the include file elsewhere (tested /usr/include and .) -
>> normal behavior
>> linux variants tested did not show this behavior
>> centos 8 gcc (GCC) 9.2.1 20191120 (Red Hat 9.2.1-2)
>> centos 8 gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
>> ubuntu 20 gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
>>
>> Should I create a bugzilla for gcc? Might be some msys2 issue. Not sure.
> I think this is the expected behaviour when the macro is defined in a
> system header, although I'm not convinced it's useful. I think there's
> already a bugzilla about it.
Ah, thank you! system headers, as in 
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/cpp/System-Headers.html
This explains the behavior I am seeing and can duplicate the issue using 
-isystem as evidenced below on all tested versions of gcc.
The world makes sense again :)

It would be useful if involved system header macro expansion were noted 
in compile error output.

Evidence:
$ cat a.h
#define ERROR 0
$ cat a.C
struct MyClass { enum { ERROR = 1 }; };

#include <a.h>

int f (int inttype)
{
    if (inttype == MyClass::ERROR)
       return 0;
    return 1;
}
$ gcc -isystem . a.C
In file included from a.C:3:
a.C: In function ‘int f(int)’:
a.C:7:28: error: expected unqualified-id before numeric constant
if (inttype == MyClass::ERROR)
^~~~~
a.C:7:26: error: expected ‘)’ before numeric constant
if (inttype == MyClass::ERROR)
~                  ^
)



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-11-27 19:42 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-22 15:34 Macros active in error messages emre brookes
2020-11-22 18:16 ` Jonathan Wakely
2020-11-24 22:19 ` Martin Sebor
2020-11-25  1:14   ` emre brookes
2020-11-27 15:54     ` emre brookes
2020-11-27 16:02       ` Jonathan Wakely
2020-11-27 19:42         ` emre brookes
2020-11-24 22:38 ` Florian Weimer
2020-11-25  1:09   ` emre brookes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).