This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

c/2848: Flow mishandles conditional SETs where the mode is wider than a single register



>Number:         2848
>Category:       c
>Synopsis:       Flow mishandles conditional SETs where the mode is wider than a single register
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed May 16 14:06:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Nick Clifton
>Release:        unknown-1.0
>Organization:
>Environment:
Red Hat Linux 7.0
>Description:
When flow is computing conditional register usage for basic
blocks, it does not always take into account that a SET 
instruction might be in a mode that utilises more than one
register.
>How-To-Repeat:
Build an ARM compiler.  Build newlib with -mhard-float enabled.
See the compilation of vfwprintf.c fail. 
>Fix:
Apply the attached patch
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="flow.c.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="flow.c.patch"

PGRhdGU+ICBSaWNoYXJkIEVhcm5zaGF3IChyZWFybnNoYUBhcm0uY29tKQoKCSogZmxvdy5jICht
YXJrX3JlZ25vX2NvbmRfbGl2ZSk6IE5ldyBmdW5jdGlvbiBicm9rZW4gb3V0IGZyb20gLi4uCgko
bWFya191c2VfcmVnKTogLi4uIGhlcmUuICBJdGVyYXRlIG92ZXIgYWxsIGNvbmRpdGlvbmFsbHkg
ZXhlY3V0ZWQKCWhhcmQgcmVnaXN0ZXJzLgoKCi0tPT1fRXhtaF8tMjEzMDQ0MTU2MApDb250ZW50
LVR5cGU6IGFwcGxpY2F0aW9uL3gtcGF0Y2ggOyBuYW1lPSJtYXJrX3VzZV9jZS5wYXRjaCIKQ29u
dGVudC1EZXNjcmlwdGlvbjogbWFya191c2VfY2UucGF0Y2gKQ29udGVudC1EaXNwb3NpdGlvbjog
YXR0YWNobWVudDsgZmlsZW5hbWU9Im1hcmtfdXNlX2NlLnBhdGNoIgoKSW5kZXg6IGZsb3cuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL2djYy9nY2MvZ2NjL2Zsb3cuYyx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4zOTQKZGlmZiAtcCAtcjEuMzk0IGZsb3cuYwoqKiogZmxvdy5jCTIwMDEvMDQv
MjggMTY6NTI6NTkJMS4zOTQKLS0tIGZsb3cuYwkyMDAxLzA1LzE2IDEzOjAzOjM3CioqKioqKioq
KioqKioqKiBzdGF0aWMgdm9pZCBtYXJrX3NldF8xCQkJUEFSQU1TICgoc3RydWN0CioqKiA0MDgs
NDEzICoqKioKLS0tIDQwOCw0MTUgLS0tLQogICNpZmRlZiBIQVZFX2NvbmRpdGlvbmFsX2V4ZWN1
dGlvbgogIHN0YXRpYyBpbnQgbWFya19yZWdub19jb25kX2RlYWQJCVBBUkFNUyAoKHN0cnVjdCBw
cm9wYWdhdGVfYmxvY2tfaW5mbyAqLAogIAkJCQkJCSBpbnQsIHJ0eCkpOworIHN0YXRpYyB2b2lk
IG1hcmtfcmVnbm9fY29uZF9saXZlCVBBUkFNUyAoKHN0cnVjdCBwcm9wYWdhdGVfYmxvY2tfaW5m
byAqLAorIAkJCQkJCSBpbnQsIHJ0eCwgaW50KSk7CiAgc3RhdGljIHZvaWQgZnJlZV9yZWdfY29u
ZF9saWZlX2luZm8JUEFSQU1TICgoc3BsYXlfdHJlZV92YWx1ZSkpOwogIHN0YXRpYyBpbnQgZmx1
c2hfcmVnX2NvbmRfcmVnXzEJCVBBUkFNUyAoKHNwbGF5X3RyZWVfbm9kZSwgdm9pZCAqKSk7CiAg
c3RhdGljIHZvaWQgZmx1c2hfcmVnX2NvbmRfcmVnCQlQQVJBTVMgKChzdHJ1Y3QgcHJvcGFnYXRl
X2Jsb2NrX2luZm8gKiwKKioqKioqKioqKioqKioqIG1hcmtfdXNlZF9yZWcgKHBiaSwgcmVnLCBj
b25kLCBpbnNuKQoqKiogNTcwMCw1NzA1ICoqKioKLS0tIDU3MDIsNTcyNiAtLS0tCiAgICAgIH0K
ICAKICAjaWZkZWYgSEFWRV9jb25kaXRpb25hbF9leGVjdXRpb24KKyAgIG1hcmtfcmVnbm9fY29u
ZF9saXZlIChwYmksIHJlZ25vLCBjb25kLCBzb21lX3dhc19saXZlKTsKKyAgIGlmIChyZWdubyA8
IEZJUlNUX1BTRVVET19SRUdJU1RFUikKKyAgICAgeworICAgICAgIG4gPSBIQVJEX1JFR05PX05S
RUdTIChyZWdubywgR0VUX01PREUgKHJlZykpOworICAgICAgIHdoaWxlICgtLW4gPiAwKQorIAlt
YXJrX3JlZ25vX2NvbmRfbGl2ZSAocGJpLCByZWdubyArIG4sIGNvbmQsIHNvbWVfd2FzX2xpdmUp
OworICAgICB9CisgCisgI2VuZGlmCisgfQorIAorICNpZmRlZiBIQVZFX2NvbmRpdGlvbmFsX2V4
ZWN1dGlvbgorIHN0YXRpYyB2b2lkCisgbWFya19yZWdub19jb25kX2xpdmUgKHBiaSwgcmVnbm8s
IGNvbmQsIHNvbWVfd2FzX2xpdmUpCisgICAgICBzdHJ1Y3QgcHJvcGFnYXRlX2Jsb2NrX2luZm8g
KnBiaTsKKyAgICAgIGludCByZWdubzsKKyAgICAgIHJ0eCBjb25kOworICAgICAgaW50IHNvbWVf
d2FzX2xpdmU7CisgewogICAgLyogSWYgdGhpcyBpcyBhIGNvbmRpdGlvbmFsIHVzZSwgcmVjb3Jk
IHRoYXQgZmFjdC4gIElmIGl0IGlzIGxhdGVyCiAgICAgICBjb25kaXRpb25hbGx5IHNldCwgd2Un
bGwga25vdyB0byBraWxsIHRoZSByZWdpc3Rlci4gICovCiAgICBpZiAoY29uZCAhPSBOVUxMX1JU
WCkKKioqKioqKioqKioqKioqIG1hcmtfdXNlZF9yZWcgKHBiaSwgcmVnLCBjb25kLCBpbnNuKQoq
KiogNTczMSw1NzM3ICoqKioKICAJICAgICAgZWxzZQogIAkJewogIAkJICByY2xpLT5jb25kaXRp
b24gPSBuY29uZDsKISAJCSAgU0VUX1JFR05PX1JFR19TRVQgKHBiaS0+cmVnX2NvbmRfcmVnLCBS
RUdOTyAoWEVYUCAoY29uZCwgMCkpKTsKICAJCX0KICAJICAgIH0KICAJfQotLS0gNTc1Miw1NzU5
IC0tLS0KICAJICAgICAgZWxzZQogIAkJewogIAkJICByY2xpLT5jb25kaXRpb24gPSBuY29uZDsK
ISAJCSAgU0VUX1JFR05PX1JFR19TRVQgKHBiaS0+cmVnX2NvbmRfcmVnLAohIAkJCQkgICAgIFJF
R05PIChYRVhQIChjb25kLCAwKSkpOwogIAkJfQogIAkgICAgfQogIAl9CioqKioqKioqKioqKioq
KiBtYXJrX3VzZWRfcmVnIChwYmksIHJlZywgY29uZCwgaW5zbikKKioqIDU3NjMsNTc3MSAqKioq
CiAgCSAgc3BsYXlfdHJlZV9yZW1vdmUgKHBiaS0+cmVnX2NvbmRfZGVhZCwgcmVnbm8pOwogIAl9
CiAgICAgIH0KLSAKLSAjZW5kaWYKICB9CiAgCiAgLyogU2NhbiBleHByZXNzaW9uIFggYW5kIHN0
b3JlIGEgMS1iaXQgaW4gTkVXX0xJVkUgZm9yIGVhY2ggcmVnIGl0IHVzZXMuCiAgICAgVGhpcyBp
cyBkb25lIGFzc3VtaW5nIHRoZSByZWdpc3RlcnMgbmVlZGVkIGZyb20gWCBhcmUgdGhvc2UgdGhh
dAotLS0gNTc4NSw1NzkyIC0tLS0KICAJICBzcGxheV90cmVlX3JlbW92ZSAocGJpLT5yZWdfY29u
ZF9kZWFkLCByZWdubyk7CiAgCX0KICAgICAgfQogIH0KKyAjZW5kaWYKICAKICAvKiBTY2FuIGV4
cHJlc3Npb24gWCBhbmQgc3RvcmUgYSAxLWJpdCBpbiBORVdfTElWRSBmb3IgZWFjaCByZWcgaXQg
dXNlcy4KICAgICBUaGlzIGlzIGRvbmUgYXNzdW1pbmcgdGhlIHJlZ2lzdGVycyBuZWVkZWQgZnJv
bSBYIGFyZSB0aG9zZSB0aGF0Cg==


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]