java/1476: compiler allows assignment to interface constants

bryce@albatross.co.nz bryce@albatross.co.nz
Wed Dec 20 12:29:00 GMT 2000


>Number:         1476
>Category:       java
>Synopsis:       compiler allows assignment to interface constants
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apbianco
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 20 12:20:35 PST 2000
>Closed-Date:    Tue Mar 07 16:31:22 PST 2000
>Last-Modified:  Tue Mar  7 16:40:00 PST 2000
>Originator:     Bryce McKinlay <bryce@albatross.co.nz>
>Release:        current
>Organization:
>Environment:
any
>Description:
Constants declared in interfaces are implicitly "static 
final". However, the gcj source parser apparantly allows 
assignment to these interface constants.

See below for example code. When generating bytecode with 
"gcj -C", the compiler correctly reports:
Test.java:5: Can't assign a value to the final variable `A'.

but with "gcj -c", no error is reported!
>How-To-Repeat:
interface Foo
{
  int A = 1;
}

class Test implements Foo
{
  Test ()
  {
    A = 2;
  }
}

>Fix:
Apply the patch. Try the test case with a newly
built front-end.
>Release-Note:
Passed the libgcj recompilation test.
>Audit-Trail:

Formerly PR gcj/94

State-Changed-From-To: open->feedback
State-Changed-By: apbianco
State-Changed-When: Tue Feb 22 22:05:21 2000
State-Changed-Why:
    There is a patch.

From: apbianco@cygnus.com
To: apbianco@cygnus.com, bryce@albatross.co.nz,
  java-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: gcj/94
Date: 23 Feb 2000 06:05:21 -0000

 Synopsis: compiler allows assignment to interface constants
 
 State-Changed-From-To: open->feedback
 State-Changed-By: apbianco
 State-Changed-When: Tue Feb 22 22:05:21 2000
 State-Changed-Why:
     There is a patch.
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=94&database=java
State-Changed-From-To: feedback->closed
State-Changed-By: apbianco
State-Changed-When: Tue Mar  7 16:31:22 2000
State-Changed-Why:
    I checked in a patch to fix this PR:
    
      http://gcc.gnu.org/ml/gcc-patches/2000-03/msg00235.html

From: apbianco@cygnus.com
To: apbianco@cygnus.com, bryce@albatross.co.nz,
  java-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: gcj/94
Date: 8 Mar 2000 00:31:23 -0000

 Synopsis: compiler allows assignment to interface constants
 
 State-Changed-From-To: feedback->closed
 State-Changed-By: apbianco
 State-Changed-When: Tue Mar  7 16:31:22 2000
 State-Changed-Why:
     I checked in a patch to fix this PR:
     
       http://gcc.gnu.org/ml/gcc-patches/2000-03/msg00235.html
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=94&database=java
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch"

MjAwMC0wMi0yMiAgQWxleGFuZHJlIFBldGl0LUJpYW5jbyAgPGFwYmlhbmNvQGN5Z251cy5jb20+
CgoJKiBwYXJzZS55IChjaGVja19maW5hbF9hc3NpZ25tZW50KTogRXh0ZW5kZWQgdG8gcHJvY2Vz
cwoJQ09NUE9VTkRfRVhQUi4KCShwYXRjaF9hc3NpZ25tZW50KTogSGF2ZSBjaGVja19maW5hbF9h
c3NpZ25tZW50IGNhbGxlZCBvbmx5IG9uY2UuCgpJbmRleDogcGFyc2UueQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL2djYy9lZ2NzL2djYy9qYXZhL3BhcnNlLnksdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMTM1CmRpZmYgLXUgLXAgLXIxLjEzNSBwYXJzZS55Ci0tLSBwYXJzZS55CTIwMDAvMDIv
MTUgMjI6NTQ6MjEJMS4xMzUKKysrIHBhcnNlLnkJMjAwMC8wMi8yMyAwNjowMjoxOApAQCAtOTA4
MCw2ICs5MDgwLDEwIEBAIHN0YXRpYyBpbnQKIGNoZWNrX2ZpbmFsX2Fzc2lnbm1lbnQgKGx2YWx1
ZSwgd2ZsKQogICAgICB0cmVlIGx2YWx1ZSwgd2ZsOwogeworICBpZiAoVFJFRV9DT0RFIChsdmFs
dWUpID09IENPTVBPVU5EX0VYUFIgCisgICAgICAmJiBKREVDTF9QIChUUkVFX09QRVJBTkQgKGx2
YWx1ZSwgMSkpKQorICAgIGx2YWx1ZSA9IFRSRUVfT1BFUkFORCAobHZhbHVlLCAxKTsKKwogICBp
ZiAoSkRFQ0xfUCAobHZhbHVlKSAKICAgICAgICYmIEZJRUxEX0ZJTkFMIChsdmFsdWUpICYmICFJ
U19DTElOSVQgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCkpCiAgICAgewpAQCAtOTE1OSw3ICs5MTYz
LDcgQEAgcGF0Y2hfYXNzaWdubWVudCAobm9kZSwgd2ZsX29wMSwgd2ZsX29wMgogICBlbHNlIGlm
IChUUkVFX0NPREUgKHdmbF9vcDEpID09IEVYUFJfV0lUSF9GSUxFX0xPQ0FUSU9OCiAJICAgJiYg
cmVzb2x2ZV9leHByZXNzaW9uX25hbWUgKHdmbF9vcDEsICZsbHZhbHVlKSkKICAgICB7Ci0gICAg
ICBpZiAoY2hlY2tfZmluYWxfYXNzaWdubWVudCAobGx2YWx1ZSwgd2ZsX29wMSkpCisgICAgICBp
ZiAoIWVycm9yX2ZvdW5kICYmIGNoZWNrX2ZpbmFsX2Fzc2lnbm1lbnQgKGxsdmFsdWUsIHdmbF9v
cDEpKQogCXsKIAkgIC8qIFdoYXQgd2Ugc2hvdWxkIGRvIGluc3RlYWQgaXMgcmVzZXR0aW5nIHRo
ZSBhbGwgdGhlIGZsYWdzCiAJICAgICBwcmV2aW91c2x5IHNldCwgZXhjaGFuZ2UgbHZhbHVlIGZv
ciBsbHZhbHVlIGFuZCBjb250aW51ZS4gKi8K




More information about the Gcc-prs mailing list