Ticket #1308 (new bug)

Opened 5 years ago

Last modified 3 years ago

NQPrx does not vivify globals in all cases

Reported by: Austin_Hastings Owned by: pmichaud
Priority: normal Milestone:
Component: nqp Version: 1.8.0
Severity: medium Keywords:
Cc: Language:
Patch status: Platform:

Description

This code:

module Z;
our $Global;
sub zzz() {
        unless $Global {
                say("Not set");
        }
}
INIT {
        zzz();
}

module A;

sub aaa() {
	our $G2;

	unless $G2 {
		say("Not set");
	}
}

generates:

    get_global $P21, "$Global"
    unless $P21, unless_20

for the access code in sub zzz. There is no guard for null. But in the access code in sub aaa there is this:

    get_global $P31, "$G2"
    unless_null $P31, vivify_17

Apparently the scope isn't being looked up correctly, or something?

Change History

Changed 3 years ago by benabik

This is still valid. We should figure out if this is something nqp-rx is doing or a bug in PCT.

Note: See TracTickets for help on using tickets.