Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • pike pike
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 105
    • Issues 105
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • pikelang
  • pikepike
  • Issues
  • #6063
Closed
Open
Issue created Sep 05, 2011 by Peter Bortas@zinoOwner

Resolving of extern declared symbols in deep inherits broken.

Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=6063

Reported by @grubba

From the Pike mailing list (12549):

From: "[ks_c_5601-1987] άàäáæ" <zenothing@hotmail.com>
Resent-From: pike@roxen.com
To: "pike@roxen.com" <pike@roxen.com>
Date: Mon, 29 Aug 2011 20:08:39 +0800
Resent-Date: Mon, 29 Aug 2011 14:08:47 +0200 (CEST)
Subject: bug of "extern"
Parts/Attachments:
   1 Shown    41 lines  Text (charset: ks_c_5601-1987)
   2   OK     24 lines  Text (charset: ks_c_5601-1987)
----------------------------------------
[ The following text is in the "ks_c_5601-1987" character set. ]
[ Your display is set for the "iso-8859-1" character set.  ]
[ Some characters may be displayed incorrectly. ]

[peterpan@brain ~]$cat deepmixin.pike
class A{
        extern string s;
        extern string t;
        void p(){
                write("%O %O\n",s,t);
        }
}
class B{
}
class C{
        inherit A;
        inherit B;
        string s;
        string t;
        void pp()
        {
                s="a";
                t="b";
                p();
        }
}
class D{
        inherit C;
}
void main()
{
        C c=C();
        c->pp();
        D d=D();
        d->pp();
}
[peterpan@brain ~]$pike deepmixin.pike
"a" "b"
0 0
[peterpan@brain ~]$pike --version
Pike v7.8 release 352 Copyright ¢Æ 1994-2009 Link¢Æping University
Pike comes with ABSOLUTELY NO WARRANTY; This is free software and you are
welcome to redistribute it under certain conditions; read the files
COPYING and COPYRIGHT in the Pike distribution for more details.
Assignee
Assign to
Time tracking