public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/91706] [8/9/10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
@ 2020-04-24 14:56 ` ppalka at gcc dot gnu.org
2021-04-16 14:12 ` [Bug c++/91706] [8/9/10/11 " jason at gcc dot gnu.org
` (13 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: ppalka at gcc dot gnu.org @ 2020-04-24 14:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ppalka at gcc dot gnu.org
--- Comment #5 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Slightly more reduced testcase:
template <bool> struct A;
struct C {
template <typename> static int c ();
};
template <class T> struct D : C {
using c = decltype (c<T>);
using E = A<c::g>;
};
D<int> g;
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [8/9/10/11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
2020-04-24 14:56 ` [Bug c++/91706] [8/9/10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782 ppalka at gcc dot gnu.org
@ 2021-04-16 14:12 ` jason at gcc dot gnu.org
2021-04-16 16:07 ` jason at gcc dot gnu.org
` (12 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2021-04-16 14:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
Status|NEW |ASSIGNED
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [8/9/10/11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
2020-04-24 14:56 ` [Bug c++/91706] [8/9/10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782 ppalka at gcc dot gnu.org
2021-04-16 14:12 ` [Bug c++/91706] [8/9/10/11 " jason at gcc dot gnu.org
@ 2021-04-16 16:07 ` jason at gcc dot gnu.org
2021-04-20 4:40 ` jason at gcc dot gnu.org
` (11 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2021-04-16 16:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords|ice-on-invalid-code |ice-on-valid-code
--- Comment #6 from Jason Merrill <jason at gcc dot gnu.org> ---
Valid variant:
template <bool> struct A;
struct B { static constexpr bool g = false; };
struct C {
template <typename> static B c ();
};
template <class T> struct D : C {
using c = decltype (c<T>());
using E = A<c::g>;
};
D<int> g;
This is a complex interaction of issues. Looking up c<T> in the definition of
D::c finds C::c, OK. Looking up c in the definition of E finds D::c, which is
depedent, OK. Since the alias is not dependent, we strip it from the template
argument, leaving
using E = A<decltype(c<T>())>;
where 'c' still refers to C::c. But instantiating E looks up 'c' again and
finds D::c, which isn't a function, so things go wrong.
I think the bug here is looking up 'c' in D at instantiation time; the
declaration we found before is not dependent.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [8/9/10/11 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2021-04-16 16:07 ` jason at gcc dot gnu.org
@ 2021-04-20 4:40 ` jason at gcc dot gnu.org
2021-05-14 9:52 ` [Bug c++/91706] [9/10/11/12 " jakub at gcc dot gnu.org
` (10 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2021-04-20 4:40 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
--- Comment #7 from Jason Merrill <jason at gcc dot gnu.org> ---
Created attachment 50632
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50632&action=edit
near fix
This seemed like a fix, but it breaks the modules/merge-8 testcase, and
debugging that is being slow.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [9/10/11/12 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2021-04-20 4:40 ` jason at gcc dot gnu.org
@ 2021-05-14 9:52 ` jakub at gcc dot gnu.org
2021-06-01 8:15 ` rguenth at gcc dot gnu.org
` (9 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-05-14 9:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|8.5 |9.4
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 8 branch is being closed.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [9/10/11/12 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2021-05-14 9:52 ` [Bug c++/91706] [9/10/11/12 " jakub at gcc dot gnu.org
@ 2021-06-01 8:15 ` rguenth at gcc dot gnu.org
2021-06-08 3:56 ` cvs-commit at gcc dot gnu.org
` (8 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-01 8:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|9.4 |9.5
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9.4 is being released, retargeting bugs to GCC 9.5.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [9/10/11/12 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2021-06-01 8:15 ` rguenth at gcc dot gnu.org
@ 2021-06-08 3:56 ` cvs-commit at gcc dot gnu.org
2021-06-08 3:56 ` cvs-commit at gcc dot gnu.org
` (7 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-08 3:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <jason@gcc.gnu.org>:
https://gcc.gnu.org/g:f07edb5d7f3e77218ec846a9382f7c1d23e67b71
commit r12-1272-gf07edb5d7f3e77218ec846a9382f7c1d23e67b71
Author: Jason Merrill <jason@redhat.com>
Date: Fri Apr 16 11:13:40 2021 -0400
c++: alias with same name as base fn [PR91706]
This is a bit complex. Looking up c<T> in the definition of D::c finds
C::c, OK. Looking up c in the definition of E finds D::c, OK. Since the
alias is not dependent, we strip it from the template argument, leaving
using E = A<decltype(c<T>())>;
where 'c' still refers to C::c. But instantiating E looks up 'c' again and
finds D::c, which isn't a function, and sadness ensues.
I think the bug here is looking up 'c' in D at instantiation time; the
declaration we found before is not dependent. This seems to happen because
baselink_for_fns gets BASELINK_BINFO wrong; it is supposed to be the base
where lookup found the functions, C in this case.
gcc/cp/ChangeLog:
PR c++/91706
* semantics.c (baselink_for_fns): Fix BASELINK_BINFO.
gcc/testsuite/ChangeLog:
PR c++/91706
* g++.dg/template/lookup17.C: New test.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [9/10/11/12 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (6 preceding siblings ...)
2021-06-08 3:56 ` cvs-commit at gcc dot gnu.org
@ 2021-06-08 3:56 ` cvs-commit at gcc dot gnu.org
2021-06-08 13:24 ` cvs-commit at gcc dot gnu.org
` (6 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-08 3:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <jason@gcc.gnu.org>:
https://gcc.gnu.org/g:1a98f830332e5a623278aaeea39c2a88177b2a9a
commit r12-1273-g1a98f830332e5a623278aaeea39c2a88177b2a9a
Author: Jason Merrill <jason@redhat.com>
Date: Fri Apr 16 13:52:02 2021 -0400
c++: preserve BASELINK from lookup [PR91706]
In the earlier patch for PR91706 I fixed the BASELINK built by
baselink_for_fns, but since we already had one from lookup, we should keep
that one around instead of stripping it. The removed hunk in
get_class_binding was a wierdly large amount of code to decide whether to
pull out BASELINK_FUNCTIONS.
gcc/cp/ChangeLog:
PR c++/91706
* name-lookup.c (get_class_binding): Keep a BASELINK.
(set_inherited_value_binding_p): Adjust.
* lambda.c (is_lambda_ignored_entity): Adjust.
* pt.c (lookup_template_function): Copy a BASELINK before
modifying it.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [9/10/11/12 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (7 preceding siblings ...)
2021-06-08 3:56 ` cvs-commit at gcc dot gnu.org
@ 2021-06-08 13:24 ` cvs-commit at gcc dot gnu.org
2021-06-08 21:20 ` [Bug c++/91706] [9/10 " jason at gcc dot gnu.org
` (5 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-08 13:24 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jason Merrill
<jason@gcc.gnu.org>:
https://gcc.gnu.org/g:46c1a9f6d03ab444b42c41067597e3fbfba38486
commit r11-8524-g46c1a9f6d03ab444b42c41067597e3fbfba38486
Author: Jason Merrill <jason@redhat.com>
Date: Fri Apr 16 11:13:40 2021 -0400
c++: alias with same name as base fn [PR91706]
This is a bit complex. Looking up c<T> in the definition of D::c finds
C::c, OK. Looking up c in the definition of E finds D::c, OK. Since the
alias is not dependent, we strip it from the template argument, leaving
using E = A<decltype(c<T>())>;
where 'c' still refers to C::c. But instantiating E looks up 'c' again and
finds D::c, which isn't a function, and sadness ensues.
I think the bug here is looking up 'c' in D at instantiation time; the
declaration we found before is not dependent. This seems to happen because
baselink_for_fns gets BASELINK_BINFO wrong; it is supposed to be the base
where lookup found the functions, C in this case.
gcc/cp/ChangeLog:
PR c++/91706
* semantics.c (baselink_for_fns): Fix BASELINK_BINFO.
gcc/testsuite/ChangeLog:
PR c++/91706
* g++.dg/template/lookup17.C: New test.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [9/10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (8 preceding siblings ...)
2021-06-08 13:24 ` cvs-commit at gcc dot gnu.org
@ 2021-06-08 21:20 ` jason at gcc dot gnu.org
2021-06-16 21:29 ` cvs-commit at gcc dot gnu.org
` (4 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2021-06-08 21:20 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[9/10/11/12 Regression] |[9/10 Regression] ICE: tree
|ICE: tree check: expected |check: expected class
|class 'type', have |'type', have 'exceptional'
|'exceptional' (error_mark) |(error_mark) in
|in |equate_type_number_to_die,
|equate_type_number_to_die, |at dwarf2out.c:5782
|at dwarf2out.c:5782 |
--- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed for 11.2/12 so far. Is there interest in fixing this on the 9/10
branches?
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [9/10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (9 preceding siblings ...)
2021-06-08 21:20 ` [Bug c++/91706] [9/10 " jason at gcc dot gnu.org
@ 2021-06-16 21:29 ` cvs-commit at gcc dot gnu.org
2022-05-13 20:11 ` jason at gcc dot gnu.org
` (3 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-16 21:29 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <jason@gcc.gnu.org>:
https://gcc.gnu.org/g:6816a44dfe1b5fa9414490a18a4aa723b6f38f18
commit r12-1543-g6816a44dfe1b5fa9414490a18a4aa723b6f38f18
Author: Jason Merrill <jason@redhat.com>
Date: Wed Jun 16 16:09:59 2021 -0400
c++: static memfn from non-dependent base [PR101078]
After my patch for PR91706, or before that with the qualified call,
tsubst_baselink returned a BASELINK with BASELINK_BINFO indicating a base
of
a still-dependent derived class. We need to look up the relevant base
binfo
in the substituted class.
PR c++/101078
PR c++/91706
gcc/cp/ChangeLog:
* pt.c (tsubst_baselink): Update binfos in non-dependent case.
gcc/testsuite/ChangeLog:
* g++.dg/template/access39.C: New test.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [9/10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (10 preceding siblings ...)
2021-06-16 21:29 ` cvs-commit at gcc dot gnu.org
@ 2022-05-13 20:11 ` jason at gcc dot gnu.org
2022-05-27 9:41 ` [Bug c++/91706] [10 " rguenth at gcc dot gnu.org
` (2 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2022-05-13 20:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Bug 91706 depends on bug 101078, which changed state.
Bug 101078 Summary: [9/10 Regression] Rejected code since r12-1272-gf07edb5d7f3e7721
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101078
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (11 preceding siblings ...)
2022-05-13 20:11 ` jason at gcc dot gnu.org
@ 2022-05-27 9:41 ` rguenth at gcc dot gnu.org
2022-06-28 10:38 ` jakub at gcc dot gnu.org
2023-07-07 8:34 ` rguenth at gcc dot gnu.org
14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-05-27 9:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|9.5 |10.4
--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9 branch is being closed
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (12 preceding siblings ...)
2022-05-27 9:41 ` [Bug c++/91706] [10 " rguenth at gcc dot gnu.org
@ 2022-06-28 10:38 ` jakub at gcc dot gnu.org
2023-07-07 8:34 ` rguenth at gcc dot gnu.org
14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-06-28 10:38 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|10.4 |10.5
--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 10.4 is being released, retargeting bugs to GCC 10.5.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/91706] [10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
` (13 preceding siblings ...)
2022-06-28 10:38 ` jakub at gcc dot gnu.org
@ 2023-07-07 8:34 ` rguenth at gcc dot gnu.org
14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-07 8:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91706
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Known to fail| |10.5.0, 11.1.0
Target Milestone|10.5 |11.2
Known to work| |11.2.0
Status|ASSIGNED |RESOLVED
--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed in GCC 11.2
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2023-07-07 8:34 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-91706-4@http.gcc.gnu.org/bugzilla/>
2020-04-24 14:56 ` [Bug c++/91706] [8/9/10 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in equate_type_number_to_die, at dwarf2out.c:5782 ppalka at gcc dot gnu.org
2021-04-16 14:12 ` [Bug c++/91706] [8/9/10/11 " jason at gcc dot gnu.org
2021-04-16 16:07 ` jason at gcc dot gnu.org
2021-04-20 4:40 ` jason at gcc dot gnu.org
2021-05-14 9:52 ` [Bug c++/91706] [9/10/11/12 " jakub at gcc dot gnu.org
2021-06-01 8:15 ` rguenth at gcc dot gnu.org
2021-06-08 3:56 ` cvs-commit at gcc dot gnu.org
2021-06-08 3:56 ` cvs-commit at gcc dot gnu.org
2021-06-08 13:24 ` cvs-commit at gcc dot gnu.org
2021-06-08 21:20 ` [Bug c++/91706] [9/10 " jason at gcc dot gnu.org
2021-06-16 21:29 ` cvs-commit at gcc dot gnu.org
2022-05-13 20:11 ` jason at gcc dot gnu.org
2022-05-27 9:41 ` [Bug c++/91706] [10 " rguenth at gcc dot gnu.org
2022-06-28 10:38 ` jakub at gcc dot gnu.org
2023-07-07 8:34 ` rguenth at gcc dot gnu.org
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).