public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: levon@movementarian.org
To: gcc-gnats@gcc.gnu.org
Subject: c/9944: gcc does not warn for always-false "if (!a & 0x4)" bitwise and on boolean value
Date: Tue, 04 Mar 2003 19:46:00 -0000	[thread overview]
Message-ID: <20030304194431.27490.qmail@sources.redhat.com> (raw)


>Number:         9944
>Category:       c
>Synopsis:       gcc does not warn for always-false "if (!a & 0x4)" bitwise and on boolean value
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Tue Mar 04 19:46:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     levon@movementarian.org
>Release:        gcc 3.4 CVS and earlier
>Organization:
>Environment:
Linux i386
>Description:
GCC does not warn for expressions that are always false,
such as the following :

     if (!a & 0x4)  // really meant if (!(a & 0x4))

I thought this might be easy to fix but its beyond
my admittedly meagre capabilities. Apparently I should
be doing it in GIMPLE according to dnovillo.

I'll attach my part-working patch here anyway in the
hope it inspires somebody with more nous (I'd also like to know the answer to "is there a simple way to find out if a tree is constrained to boolean, i.e. 0|1, result", but only
academically).
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bba2.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bba2.diff"

SW5kZXg6IGMtY29tbW9uLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvZ2NjL2djYy9n
Y2MvYy1jb21tb24uYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zOTMuMi4xCmRpZmYgLXUgLXIx
LjM5My4yLjEgYy1jb21tb24uYwotLS0gYy1jb21tb24uYwkxOSBGZWIgMjAwMyAwMjowNzo1NiAt
MDAwMAkxLjM5My4yLjEKKysrIGMtY29tbW9uLmMJNCBNYXIgMjAwMyAxOTo0MDoyMyAtMDAwMApA
QCAtMzY5LDYgKzM2OSwxMCBAQAogCiBpbnQgd2Fybl9iYWRfZnVuY3Rpb25fY2FzdDsKIAorLyog
V2FybiBhYm91dCBhbHdheXMtZmFsc2UgYml0d2lzZSBhbmQgd2l0aCAhPSAxIG9uIGEgYm9vbGVh
biB2YWx1ZSAqLworCitpbnQgd2Fybl9ib29sZWFuX2JpdHdpc2VfYW5kOworCiAvKiBXYXJuIGFi
b3V0IHRyYWRpdGlvbmFsIGNvbnN0cnVjdHMgd2hvc2UgbWVhbmluZ3MgY2hhbmdlZCBpbiBBTlNJ
IEMuICAqLwogCiBpbnQgd2Fybl90cmFkaXRpb25hbDsKQEAgLTY2MDgsNiArNjYxMiwyMiBAQAog
ICAgIH0KIAogICAoKmNhbGxiYWNrKSAoY3R4LCBwYXJhbSwgcGFyYW1fbnVtKTsKK30KKwwKKy8q
IHJldHVybiB0cnVlIGlmIHRoZSB0cmVlIGlzIGtub3duIHRvIHJlcHJlc2VudCBhIGJvb2xlYW4g
dmFsdWUuICovCitpbnQKK2Jvb2xlYW5fdmFsdWVfcChleHByKQorICAgICB0cmVlIGV4cHI7Cit7
CisgIHRyZWUgb3JpZzEgPSBleHByOworICB0cmVlIG9yaWcyOworICB0cmVlIG5ldzM7CisgIGlm
ICh0cnV0aF92YWx1ZV9wIChUUkVFX0NPREUgKGV4cHIpKSkKKyAgICAgcmV0dXJuIDE7CisgIG9y
aWcyID0gZXhwcjsKKyAgU1RSSVBfTk9QUyAoZXhwcik7CisgIG5ldzMgPSBleHByOworICByZXR1
cm4gdHJ1dGhfdmFsdWVfcCAoVFJFRV9DT0RFIChleHByKSk7CiB9CiAKICNpbmNsdWRlICJndC1j
LWNvbW1vbi5oIgpJbmRleDogYy1jb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9v
dC9nY2MvZ2NjL2djYy9jLWNvbW1vbi5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE2NApkaWZm
IC11IC1yMS4xNjQgYy1jb21tb24uaAotLS0gYy1jb21tb24uaAkxIERlYyAyMDAyIDE3OjUxOjQ0
IC0wMDAwCTEuMTY0CisrKyBjLWNvbW1vbi5oCTQgTWFyIDIwMDMgMTk6NDA6MjUgLTAwMDAKQEAg
LTUzOCw2ICs1MzgsMTAgQEAKIAogZXh0ZXJuIGludCB3YXJuX2JhZF9mdW5jdGlvbl9jYXN0Owog
CisvKiBXYXJuIGFib3V0IGFsd2F5cy1mYWxzZSBiaXR3aXNlIGFuZCB3aXRoICE9IDEgb24gYSBi
b29sZWFuIHZhbHVlICovCisKK2V4dGVybiBpbnQgd2Fybl9ib29sZWFuX2JpdHdpc2VfYW5kOwor
CiAvKiBXYXJuIGFib3V0IHRyYWRpdGlvbmFsIGNvbnN0cnVjdHMgd2hvc2UgbWVhbmluZ3MgY2hh
bmdlZCBpbiBBTlNJIEMuICAqLwogCiBleHRlcm4gaW50IHdhcm5fdHJhZGl0aW9uYWw7CkBAIC05
MzksNiArOTQzLDcgQEAKIGV4dGVybiBib29sIGNfcHJvbW90aW5nX2ludGVnZXJfdHlwZV9wCQlQ
QVJBTVMgKCh0cmVlKSk7CiBleHRlcm4gaW50IHNlbGZfcHJvbW90aW5nX2FyZ3NfcAkJUEFSQU1T
ICgodHJlZSkpOwogZXh0ZXJuIHRyZWUgc3RyaXBfYXJyYXlfdHlwZXMgICAgICAgICAgICAgICAg
ICAgUEFSQU1TICgodHJlZSkpOworZXh0ZXJuIGludCBib29sZWFuX3ZhbHVlX3AJCQlQQVJBTVMg
KCh0cmVlKSk7CiAKIC8qIFRoZXNlIG1hY3JvcyBwcm92aWRlIGNvbnZlbmllbnQgYWNjZXNzIHRv
IHRoZSB2YXJpb3VzIF9TVE1UIG5vZGVzLiAgKi8KIApJbmRleDogYy1vcHRzLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2c3Jvb3QvZ2NjL2djYy9nY2MvYy1vcHRzLmMsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMjQuNi4xCmRpZmYgLXUgLXIxLjI0LjYuMSBjLW9wdHMuYwotLS0gYy1vcHRzLmMJ
MjEgRmViIDIwMDMgMDY6MTI6NTggLTAwMDAJMS4yNC42LjEKKysrIGMtb3B0cy5jCTQgTWFyIDIw
MDMgMTk6NDA6MjYgLTAwMDAKQEAgLTEyNyw2ICsxMjcsNyBAQAogICBPUFQoIldhYmkiLCAgICAg
ICAgICAgICAgICAgICBDTF9DWFgsICAgT1BUX1dhYmkpICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgIE9QVCgiV2FsbCIsCQkJQ0xfQUxMLCAgIE9QVF9XYWxsKQkJCSAgICAgXAogICBPUFQo
IldiYWQtZnVuY3Rpb24tY2FzdCIsCUNMX0MsICAgICBPUFRfV2JhZF9mdW5jdGlvbl9jYXN0KQkg
ICAgIFwKKyAgT1BUKCJXYm9vbGVhbi1iaXR3aXNlLWFuZCIsICAgQ0xfQUxMLCAgIE9QVF9XYm9v
bGVhbl9iaXR3aXNlX2FuZCkgICAgICAgICAgXAogICBPUFQoIldjYXN0LXF1YWwiLAkJQ0xfQUxM
LCAgIE9QVF9XY2FzdF9xdWFsKQkJICAgICBcCiAgIE9QVCgiV2NoYXItc3Vic2NyaXB0cyIsCUNM
X0FMTCwgICBPUFRfV2NoYXJfc3Vic2NyaXB0cykJCSAgICAgXAogICBPUFQoIldjb21tZW50IiwJ
CUNMX0FMTCwgICBPUFRfV2NvbW1lbnQpCQkJICAgICBcCkBAIC03MDIsNiArNzAzLDcgQEAKICAg
ICAgIHdhcm5fc2lnbl9jb21wYXJlID0gb247CS8qIFdhcyBDKysgb25seS4gICovCiAgICAgICB3
YXJuX3N3aXRjaCA9IG9uOwogICAgICAgd2Fybl9zdHJpY3RfYWxpYXNpbmcgPSBvbjsKKyAgICAg
IHdhcm5fYm9vbGVhbl9iaXR3aXNlX2FuZCA9IG9uOwogICAgICAgCiAgICAgICAvKiBPbmx5IHdh
cm4gYWJvdXQgdW5rbm93biBwcmFnbWFzIHRoYXQgYXJlIG5vdCBpbiBzeXN0ZW0KIAkgaGVhZGVy
cy4gICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApAQCAtNzM0LDYg
KzczNiwxMCBAQAogCiAgICAgY2FzZSBPUFRfV2JhZF9mdW5jdGlvbl9jYXN0OgogICAgICAgd2Fy
bl9iYWRfZnVuY3Rpb25fY2FzdCA9IG9uOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QVF9X
Ym9vbGVhbl9iaXR3aXNlX2FuZDoKKyAgICAgIHdhcm5fYm9vbGVhbl9iaXR3aXNlX2FuZCA9IG9u
OwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE9QVF9XY2FzdF9xdWFsOgpJbmRleDogYy10eXBl
Y2suYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9nY2MvZ2NjL2djYy9jLXR5cGVjay5j
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIxMy4yLjIKZGlmZiAtdSAtcjEuMjEzLjIuMiBjLXR5
cGVjay5jCi0tLSBjLXR5cGVjay5jCTkgSmFuIDIwMDMgMTI6MTE6MzQgLTAwMDAJMS4yMTMuMi4y
CisrKyBjLXR5cGVjay5jCTQgTWFyIDIwMDMgMTk6NDA6MzQgLTAwMDAKQEAgLTIwMDcsNiArMjAw
NywxNyBAQAogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEJJVF9BTkRfRVhQUjoKKyAgICAgIC8q
IGdpdmUgYSB3YXJuaW5nIGZvciAoIXVhICYgMHg0KSBhbmQgc2ltaWxhciBjYXNlcyAqLworICAg
ICAgaWYgKHdhcm5fYm9vbGVhbl9iaXR3aXNlX2FuZCkKKyAgICAgIHsKKyAgICAgICAgIGludCBv
cDBub3QxID0gVFJFRV9DT0RFIChvcDApID09IElOVEVHRVJfQ1NUICYmICFpbnRlZ2VyX29uZXAg
KG9wMCk7CisgICAgICAgICBpbnQgb3Axbm90MSA9IFRSRUVfQ09ERSAob3AxKSA9PSBJTlRFR0VS
X0NTVCAmJiAhaW50ZWdlcl9vbmVwIChvcDEpOworCSBpZiAoKG9wMG5vdDEgJiYgYm9vbGVhbl92
YWx1ZV9wIChvcDEpKSB8fCAob3Axbm90MSAmJiBib29sZWFuX3ZhbHVlX3AgKG9wMCkpKQorICAg
ICAgICAgICAgd2FybmluZyAoImJpdHdpc2UgYW5kIGV4cHJlc3Npb24gaXMgYWx3YXlzIGZhbHNl
Iik7CisgICAgICB9CisKKyAgICAgIC8qIGZhbGx0aHJvdWdoICovCisKICAgICBjYXNlIEJJVF9B
TkRUQ19FWFBSOgogICAgIGNhc2UgQklUX0lPUl9FWFBSOgogICAgIGNhc2UgQklUX1hPUl9FWFBS
OgpJbmRleDogZm9sZC1jb25zdC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2djYy9n
Y2MvZ2NjL2ZvbGQtY29uc3QuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMjcuMi4xCmRpZmYg
LXUgLXIxLjIyNy4yLjEgZm9sZC1jb25zdC5jCi0tLSBmb2xkLWNvbnN0LmMJMTYgRmViIDIwMDMg
MDg6MjU6MjAgLTAwMDAJMS4yMjcuMi4xCisrKyBmb2xkLWNvbnN0LmMJNCBNYXIgMjAwMyAxOTo0
MDo0MyAtMDAwMApAQCAtNzQsNyArNzQsNiBAQAogc3RhdGljIGVudW0gdHJlZV9jb2RlIHN3YXBf
dHJlZV9jb21wYXJpc29uIFBBUkFNUyAoKGVudW0gdHJlZV9jb2RlKSk7CiBzdGF0aWMgaW50IGNv
bXBhcmlzb25fdG9fY29tcGNvZGUgUEFSQU1TICgoZW51bSB0cmVlX2NvZGUpKTsKIHN0YXRpYyBl
bnVtIHRyZWVfY29kZSBjb21wY29kZV90b19jb21wYXJpc29uIFBBUkFNUyAoKGludCkpOwotc3Rh
dGljIGludCB0cnV0aF92YWx1ZV9wCVBBUkFNUyAoKGVudW0gdHJlZV9jb2RlKSk7CiBzdGF0aWMg
aW50IG9wZXJhbmRfZXF1YWxfZm9yX2NvbXBhcmlzb25fcCBQQVJBTVMgKCh0cmVlLCB0cmVlLCB0
cmVlKSk7CiBzdGF0aWMgaW50IHR3b3ZhbF9jb21wYXJpc29uX3AJUEFSQU1TICgodHJlZSwgdHJl
ZSAqLCB0cmVlICosIGludCAqKSk7CiBzdGF0aWMgdHJlZSBldmFsX3N1YnN0CQlQQVJBTVMgKCh0
cmVlLCB0cmVlLCB0cmVlLCB0cmVlLCB0cmVlKSk7CkBAIC0xNzcxLDcgKzE3NzAsNyBAQAogCiAv
KiBSZXR1cm4gbm9uemVybyBpZiBDT0RFIGlzIGEgdHJlZSBjb2RlIHRoYXQgcmVwcmVzZW50cyBh
IHRydXRoIHZhbHVlLiAgKi8KIAotc3RhdGljIGludAoraW50CiB0cnV0aF92YWx1ZV9wIChjb2Rl
KQogICAgICBlbnVtIHRyZWVfY29kZSBjb2RlOwogewpJbmRleDogdG9wbGV2LmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2c3Jvb3QvZ2NjL2djYy9nY2MvdG9wbGV2LmMsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNjkwLjIuOApkaWZmIC11IC1yMS42OTAuMi44IHRvcGxldi5jCi0tLSB0b3BsZXYu
YwkzIE1hciAyMDAzIDE4OjI2OjEyIC0wMDAwCTEuNjkwLjIuOAorKysgdG9wbGV2LmMJNCBNYXIg
MjAwMyAxOTo0MDo0OCAtMDAwMApAQCAtMTI1NSw2ICsxMjU1LDkgQEAKICAgeyAiLVdiYWQtZnVu
Y3Rpb24tY2FzdCIsCiAgICAgTl8oIldhcm4gYWJvdXQgY2FzdGluZyBmdW5jdGlvbnMgdG8gaW5j
b21wYXRpYmxlIHR5cGVzIikgfSwKICAgeyAiLVduby1iYWQtZnVuY3Rpb24tY2FzdCIsICIiIH0s
CisgIHsgIi1XYm9vbGVhbi1iaXR3aXNlLWFuZCIsCisgICAgTl8oIldhcm4gYWJvdXQgYml0d2lz
ZSBhbmQgZXhwcmVzc2lvbnMgb24gYm9vbGVhbiB2YWx1ZXMgdGhhdCBhcmUgYWx3YXlzIGZhbHNl
IikgfSwKKyAgeyAiLVduby1ib29sZWFuLWJpdHdpc2UtYW5kIiwgIiIgfSwKICAgeyAiLVdtaXNz
aW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAogICAgIE5fKCJXYXJuIGFib3V0IGZ1bmN0aW9ucyB3aGlj
aCBtaWdodCBiZSBjYW5kaWRhdGVzIGZvciBmb3JtYXQgYXR0cmlidXRlcyIpIH0sCiAgIHsgIi1X
bm8tbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIiwgIiIgfSwKSW5kZXg6IHRyZWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9nY2MvZ2NjL2djYy90cmVlLmgsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMzY3LjIuMQpkaWZmIC11IC1yMS4zNjcuMi4xIHRyZWUuaAotLS0gdHJlZS5oCTkg
SmFuIDIwMDMgMTI6MTE6MzggLTAwMDAJMS4zNjcuMi4xCisrKyB0cmVlLmgJNCBNYXIgMjAwMyAx
OTo0MDo1MyAtMDAwMApAQCAtMjkxNSw2ICsyOTE1LDggQEAKIAwKIGV4dGVybiB0cmVlIGJ1aWxk
X3JhbmdlX3R5cGUgUEFSQU1TICgodHJlZSwgdHJlZSwgdHJlZSkpOwogCitleHRlcm4gaW50IHRy
dXRoX3ZhbHVlX3AJUEFSQU1TICgoZW51bSB0cmVlX2NvZGUpKTsKKwogLyogSW4gYWxpYXMuYyAq
LwogZXh0ZXJuIHZvaWQgcmVjb3JkX2NvbXBvbmVudF9hbGlhc2VzCQlQQVJBTVMgKCh0cmVlKSk7
CiBleHRlcm4gSE9TVF9XSURFX0lOVCBnZXRfYWxpYXNfc2V0CQlQQVJBTVMgKCh0cmVlKSk7Cklu
ZGV4OiBjcC90eXBlY2suYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9nY2MvZ2NjL2dj
Yy9jcC90eXBlY2suYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MzYuMi4yCmRpZmYgLXUgLXIx
LjQzNi4yLjIgdHlwZWNrLmMKLS0tIGNwL3R5cGVjay5jCTIyIEphbiAyMDAzIDE5OjE3OjE1IC0w
MDAwCTEuNDM2LjIuMgorKysgY3AvdHlwZWNrLmMJNCBNYXIgMjAwMyAxOTo0MTowNSAtMDAwMApA
QCAtMzE1NSw2ICszMTU1LDIxIEBACiAgICAgICBicmVhazsKIAogICAgIGNhc2UgQklUX0FORF9F
WFBSOgorICAgICAgLyogZ2l2ZSBhIHdhcm5pbmcgZm9yICghdWEgJiAweDQpIGFuZCBzaW1pbGFy
IGNhc2VzICovCisgICAgICBpZiAod2Fybl9ib29sZWFuX2JpdHdpc2VfYW5kKQorICAgICAgewor
ICAgICAgICAgaW50IG9wMG5vdDEgPSBUUkVFX0NPREUgKG9wMCkgPT0gSU5URUdFUl9DU1QgJiYg
IWludGVnZXJfb25lcCAob3AwKTsKKyAgICAgICAgIGludCBvcDFub3QxID0gVFJFRV9DT0RFIChv
cDEpID09IElOVEVHRVJfQ1NUICYmICFpbnRlZ2VyX29uZXAgKG9wMSk7CisJIGlmIChib29sZWFu
X3ZhbHVlX3Aob3AwKSkgeworCQkgd2FybmluZygib3AwIGlzIGJvb2xlYW4iKTsKKwkJIGRlYnVn
X3RyZWUob3AwKTsKKwkJfQorCSBpZiAoKG9wMG5vdDEgJiYgYm9vbGVhbl92YWx1ZV9wIChvcDEp
KSB8fCAob3Axbm90MSAmJiBib29sZWFuX3ZhbHVlX3AgKG9wMCkpKQorICAgICAgICAgICAgd2Fy
bmluZyAoImJpdHdpc2UgYW5kIGV4cHJlc3Npb24gaXMgYWx3YXlzIGZhbHNlIik7CisgICAgICB9
CisKKyAgICAgIC8qIGZhbGx0aHJvdWdoICovCisKICAgICBjYXNlIEJJVF9BTkRUQ19FWFBSOgog
ICAgIGNhc2UgQklUX0lPUl9FWFBSOgogICAgIGNhc2UgQklUX1hPUl9FWFBSOgo=


             reply	other threads:[~2003-03-04 19:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-04 19:46 levon [this message]
2003-03-21  1:46 John Levon
2003-03-22  4:31 bangerth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030304194431.27490.qmail@sources.redhat.com \
    --to=levon@movementarian.org \
    --cc=gcc-gnats@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).