c++/1488: No C++ warning option to guard against bogus return types for C linkage

jon.connell@arm.com jon.connell@arm.com
Thu Dec 21 06:06:00 GMT 2000


>Number:         1488
>Category:       c++
>Synopsis:       No C++ warning option to guard against bogus return types for C linkage
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 21 06:06:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     jon.connell@arm.com
>Release:        gcc version 2.95.1
>Organization:
>Environment:
RedHat 6.2, Kernel 2.2.17-6, glibc 2.1.3
>Description:
When returning or passing parameters to/from a C++ function
that is declared to have C linkage, non-C datatypes should
be flagged with a warning to avoid errors.
>How-To-Repeat:
Pass the attached script to bash.

Whilst the programmer could have easily chosen a typedef
for bool in C which matched the C++ implementation on the
host system, the choice of bool for a return type of a
C++ function with C linkage was probably an error and ought
to raise a warning.
>Fix:

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

Y2F0ID4gYm9vbC5jcHAgPDxFT0YKZXh0ZXJuICJDIiBib29sIGYxKHVuc2lnbmVkIGludCAqYSwg
dW5zaWduZWQgaW50KiBiKQp7CiAgKmEgPSAxMDA7CiAgKmIgPSAyMDA7CiAgcmV0dXJuIGZhbHNl
Owp9CkVPRgoKY2F0ID5ib29sLmMgPDxFT0YKI2luY2x1ZGUgPHN0ZGlvLmg+CiAKdHlwZWRlZiBl
bnVtIHtmYWxzZSwgdHJ1ZX0gYm9vbDsKZXh0ZXJuIGJvb2wgZjEodW5zaWduZWQgaW50ICphLCB1
bnNpZ25lZCBpbnQgKmIpOwogCmludCBtYWluKHZvaWQpCnsKICB1bnNpZ25lZCBpbnQgYTsKICB1
bnNpZ25lZCBpbnQgYjsKICBib29sIGMgPSBmMSgmYSwgJmIpOwogIHByaW50ZigiYT0lZCwgYj0l
ZCwgYz0lZFxuIiwgYSwgYiwgYyk7CiAgcmV0dXJuIDA7Cn0KRU9GCgojIFVzZSBldmVyeSB3YXJu
aW5nIGluIHRoZSBib29rLgp3YXJuPSItV2FsbCAtVyAtV3RyYWRpdGlvbmFsIC1XdW5kZWYgLVdz
aGFkb3cgLVdwb2ludGVyLWFyaXRoIC1XYmFkLWZ1bmN0aW9uLWNhc3QgLVdjYXN0LXF1YWwgLVdj
YXN0LWFsaWduIC1Xd3JpdGUtc3RyaW5ncyAtV2NvbnZlcnNpb24gLVdzaWduLWNvbXBhcmUgLVdh
Z2dyZWdhdGUtcmV0dXJuIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMg
LVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3Npbmctbm9yZXR1cm4gLVdyZWR1bmRhbnQtZGVj
bHMgLVduZXN0ZWQtZXh0ZXJucyAtV2lubGluZSAtV2xvbmctbG9uZyAtV2Vycm9yIgoKZysrIC1h
bnNpIC1wZWRhbnRpYyAtYyAkd2FybiBib29sLmNwcApnY2MgLWFuc2kgLXBlZGFudGljIC1vIGJv
b2wgYm9vbC5jIGJvb2wubwoKZWNobyBFeHBlY3QgYT0xMDAsIGI9MjAwLCBjPTAKLi9ib29sCg==


More information about the Gcc-prs mailing list