c/5127: Should Get a Compile Error

dhighley@highley-recommended.com dhighley@highley-recommended.com
Sat Dec 15 13:37:00 GMT 2001


>Number:         5127
>Category:       c
>Synopsis:       Should Get a Compile Error
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Dec 15 13:06:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     David Highley
>Release:        3.0.2
>Organization:
>Environment:
Cygwin
>Description:
Should get a compiler error when a file open has the, "b", binary
option in the wrong place. I believe the ansi specification states
that this option need to be first in the option list, so:
	freopen(*argv, "rb", stdin);
Should give a compiler diagnotic error. I lost 4 days trying
to figure out why the what utility would not function. Visual
Studio 6.0 and Borland 5.1 also miss giving a compiler diagnostic.
>How-To-Repeat:
In a Cygwin environment do the following:
- gcc -o what what.c
- gcc -o testc -ansi -pedantic -pedantic-erros -Wall testc.c
- ./what testc

Should not get a compiler diagnostic and you should not see the
string "VERSION STRING"

Change the freopen call at line 91 to:
   if (!freopen(*argv, "br", stdin))

Recompile what and now you should see the version string.
>Fix:
If order of parameter matter, then the order should be checked.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-tar; name="what.tar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="what.tar"

d2hhdC5jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMTc1
MQAwMDAwMDEyADAwMDAwMDA3MDA3ADA3NDA2NzMxNDQ1ADAwMTMxNjMAMAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMGRoaWdobGV5AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAc3RhZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMjEwADAwMDAw
MDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv
KgogKiBDb3B5cmlnaHQgKGMpIDE5ODAsIDE5ODgsIDE5OTMKICoJVGhlIFJlZ2VudHMgb2YgdGhl
IFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKICogYXJlIG1ldDoKICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgog
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqIDMuIEFs
bCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhp
cyBzb2Z0d2FyZQogKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1l
bnQ6CiAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVu
aXZlcnNpdHkgb2YKICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMu
CiAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBv
ZiBpdHMgY29udHJpYnV0b3JzCiAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQogKiAgICB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0gg
REFNQUdFLgogKi8KCiNpZm5kZWYgbGludApzdGF0aWMgY29uc3QgY2hhciBjb3B5cmlnaHRbXSA9
CiJAKCMpIENvcHlyaWdodCAoYykgMTk4MCwgMTk4OCwgMTk5M1xuXAoJVGhlIFJlZ2VudHMgb2Yg
dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4iOwoj
ZW5kaWYgLyogbm90IGxpbnQgKi8KCiNpZm5kZWYgbGludAojaWYgMApzdGF0aWMgY2hhciBzY2Nz
aWRbXSA9ICJAKCMpd2hhdC5jCTguMSAoQmVya2VsZXkpIDYvNi85MyI7CiNlbmRpZgpzdGF0aWMg
Y29uc3QgY2hhciByY3NpZFtdID0KICAiJEZyZWVCU0Q6IHNyYy91c3IuYmluL3doYXQvd2hhdC5j
LHYgMS42IDIwMDAvMDMvMjYgMTU6MDQ6MzUgY2hhcm5pZXIgRXhwICQiOwojZW5kaWYgLyogbm90
IGxpbnQgKi8KCiNpbmNsdWRlIDxzdGRpby5oPgoKc3RhdGljIGludCBzZmxhZzsKc3RhdGljIGlu
dCBmb3VuZDsKCnZvaWQgc2VhcmNoICh2b2lkKTsKc3RhdGljIHZvaWQgdXNhZ2UgKHZvaWQpOwoK
LyoKICogd2hhdAogKi8KaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQp7CiAgICBpbnQg
aTsKICAgIGNoYXIgKipwX2FyZ3Y7CgogICAgcF9hcmd2ID0gYXJndjsKICAgIGZvciAoaSA9IDE7
IGkgPCBhcmdjOyBpKyspCiAgICB7CglpZiAoYXJndltpXVswXSA9PSAnLScgJiYgYXJndltpXVsx
XSA9PSAnaCcpCgl7CgkgICAgLyogLWhlbHAgKi8KCSAgICB1c2FnZSgpOwoJfQoJZWxzZSBpZiAo
YXJndltpXVswXSA9PSAnLScgJiYgYXJndltpXVsxXSA9PSAncycpCgl7CgkgICAgLyogLXMgU3Rv
cCBhZnRlciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgcGF0dGVybi4gKi8KCSAgICBzZmxh
ZyA9IDE7CgkgICAgcF9hcmd2Kys7Cgl9CgllbHNlIGlmIChhcmd2W2ldWzBdID09ICctJyAmJiBh
cmd2W2ldWzFdID09ICctJykKCXsKCSAgICAvKiAtLSBlbmQgb2YgY29tbWFuZCBmbGFncyAqLwoJ
ICAgIHBfYXJndisrOwoJICAgIGJyZWFrOwoJfQogICAgfQoKICAgIGFyZ3YgPSArK3BfYXJndjsK
ICAgIGlmICghKmFyZ3YpCglzZWFyY2goKTsKICAgIGVsc2UgZG8KICAgIHsKCWlmICghZnJlb3Bl
bigqYXJndiwgInJiIiwgc3RkaW4pKQoJICAgIHByaW50ZigiJXM6XG4iLCAqYXJndik7CgllbHNl
Cgl7CgkgICAgcHJpbnRmKCIlczpcbiIsICphcmd2KTsKCSAgICBzZWFyY2goKTsKCX0KICAgIH0g
d2hpbGUoKisrYXJndik7CiAgICBleGl0KCFmb3VuZCk7Cn0KCnN0YXRpYyB2b2lkIHVzYWdlKCkK
ewoJKHZvaWQpZnByaW50ZihzdGRlcnIsICJ1c2FnZTogd2hhdCBbLXNdIGZpbGUgLi4uXG4iKTsK
CWV4aXQoMSk7Cn0KCnZvaWQgc2VhcmNoKCkKewoJcmVnaXN0ZXIgaW50IGM7CgoJd2hpbGUgKChj
ID0gZ2V0Y2hhcigpKSAhPSBFT0YpCgl7Cmxvb3A6CSAgICBpZiAoYyAhPSAnQCcpCgkJY29udGlu
dWU7CgkgICAgaWYgKChjID0gZ2V0Y2hhcigpKSAhPSAnKCcpCgkJZ290byBsb29wOwoJICAgIGlm
ICgoYyA9IGdldGNoYXIoKSkgIT0gJyMnKQoJCWdvdG8gbG9vcDsKCSAgICBpZiAoKGMgPSBnZXRj
aGFyKCkpICE9ICcpJykKCQlnb3RvIGxvb3A7CgkgICAgcHV0Y2hhcignXHQnKTsKCSAgICB3aGls
ZSAoKGMgPSBnZXRjaGFyKCkpICE9IEVPRiAmJiBjICYmIGMgIT0gJyInICYmCgkJYyAhPSAnPicg
JiYgYyAhPSAnXFwnICYmIGMgIT0gJ1xuJykKCQkgICAgcHV0Y2hhcihjKTsKCSAgICBwdXRjaGFy
KCdcbicpOwoJICAgIGZvdW5kID0gMTsKCSAgICBpZiAoc2ZsYWcpCgkJcmV0dXJuOwoJfQp9CgoA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGVzdGMuYwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMTc1MQAwMDAwMDEy
ADAwMDAwMDAwMDcwADA3NDA2NzMzMDE2ADAwMTMzMjcAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMGRoaWdobGV5AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAc3RhZmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMjEwADAwMDAwMDMAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpbnQgbWFpbiAo
KQp7CiAgICBjaGFyKiB2ZXJzaW9uPSJAKCMpVkVSU0lPTiBTVFJJTkciOwp9CgAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=



More information about the Gcc-bugs mailing list