I think the intent was to put data objects initialized to 0 into BSS
sections in order to minimize the size of object files as well as
executables (most probably aggregaes).

Murthy

-----Original Message-----
From: Sun Chan [mailto:sun.c...@gmail.com] 
Sent: Monday, August 09, 2010 2:31 AM
To: Open64-devel
Cc: grey0...@gmail.com
Subject: [Open64-devel] Why initialized (to zero value) symbol is
markedundefine?

Folks,

Someone asked me this question and I'm not sure I know the exact
reason why. May be someone can help.

In wfe_decl.cxx, function
static void
Add_Inito_For_Tree (tree init, tree decl, ST *st)

The symbol, if initiailzed by user to zero, FE will change the storage
class to undefined global. Why?

Thx in advance.

Sun

Here is the code inside that function:

       Set_ST_init_value_zero(st);
        if (ST_sclass(st) == SCLASS_DGLOBAL)
            Set_ST_sclass(st, SCLASS_UGLOBAL);
        return;
    }
#endif
    aggregate_inito = New_INITO (st);
    not_at_root = FALSE;

------------------------------------------------------------------------
------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to