gnupic: some question about the directive GLOBAL in the source code.


Previous by date: 17 Aug 2012 05:25:33 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan
Next by date: 17 Aug 2012 05:25:33 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan
Previous in thread: 17 Aug 2012 05:25:33 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan
Next in thread: 17 Aug 2012 05:25:33 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan

Subject: Re: some question about the directive GLOBAL in the source code.
From: Tamas Rudnai ####@####.####
Date: 17 Aug 2012 05:25:33 -0000
Message-Id: <CAJLb5+QNA0KUpgHUUUEDwPVRUOwC7hVaTetHHfCWgOiMSBnpUQ@mail.gmail.com>

The "global var" will never be "executed" as that is not an instruction but
a directive. But that is not important right now.

What is important that although I have never looked at the full source code
and therefore not sure what are those functions and macros doing there, but
following your logic in the comments, the "p will point to var" in line 5.
Now if var is unknown at that stage, then maybe p will be NULL, right? So
because of the condition at line 6, the compiler will never make it to the
line 7... Just my cents.

Tamas



On 15 August 2012 19:50, feqin fan ####@####.#### wrote:

> because the symbol_table stTop have nothing about symbol "var", the source
> line "global var" is first line executed by assembler.
>
> all of this are my inferences.
>
> :-)
>
> THX..
>
> 2012/8/16 Holger Oehm ####@####.####
>
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > On 14.08.2012 12:35, feqin fan wrote:
> > > Hello, everybody, I'm sorry to trouble you again.
> > >     I have read most of the source code of gputils. I have a query
> about
> > > the implementation of the directive GLOBAL.
> > >     for example, Have this code:
> > >
> > >     global var
> > >
> > >     udata
> > > var    res 1
> > >
> > > the assembler deal with the first line "global var",
> > > the calling sequence is like this : yyparse() - do_or_append_insn(char
> *,
> > > struct pnode *) - do_insn(char *, struct pnode *) - do_global()
> > >     the function do_global() source code :
> > >
> > > 1,    if (state.mode == absolute) {
> > > 2,        gperror(GPE_OBJECT_ONLY, NULL);
> > > 3,    } else {
> > > 4,        for (; parms; parms = TAIL(parms)) {
> > > 5,            p = maybe_evaluate_concat(HEAD(parms));    //p will point
> > to
> > > "var".
> > > 6,        if (p) {
> > > 7,            s = get_symbol(state.stTop, p);    //s will be NULL
> > > 8,            if (s == NULL) {
> > > 9,                snprintf(buf,
> > > 10,                     sizeof(buf),
> > > 11                      "Symbol not previously defined (%s).",
> > > 12,                     p);
> > > 13,             gperror(GPE_NOSYM, buf);
> > >
> > >
> > >
> > > the line 4 must be first executed, in line 5 the p will point to "var".
> > and
> > > in line 7, because the source code "global var" is the first line of
> the
> > > being assembled code.
> > > So. in the function do_global() line 7, the s will be NULL,
> >
> > And why exactly should s be NULL after the assignment in line 7???
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.11 (GNU/Linux)
> > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> >
> > iEYEARECAAYFAlAr48sACgkQHdk+97UOUanAAgCfYSdqul+vqfA3ARzB38GScQGT
> > 8lUAoIVHttJ6BOx1WLJCph25B4ak3+dN
> > =N8FO
> > -----END PGP SIGNATURE-----
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: ####@####.####
> > For additional commands, e-mail: ####@####.####
> >
> >
>



-- 
int main() { char *a,*s,*q; printf(s="int main() { char *a,*s,*q;
printf(s=%s%s%s, q=%s%s%s%s,s,q,q,a=%s%s%s%s,q,q,q,a,a,q); }",
q="\"",s,q,q,a="\\",q,q,q,a,a,q); }

Previous by date: 17 Aug 2012 05:25:33 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan
Next by date: 17 Aug 2012 05:25:33 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan
Previous in thread: 17 Aug 2012 05:25:33 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan
Next in thread: 17 Aug 2012 05:25:33 -0000 Re: some question about the directive GLOBAL in the source code., feqin fan


Powered by ezmlm-browse 0.20.