------- Comment #3 from pinskia at gcc dot gnu dot org  2007-03-04 20:56 -------
Reduced as far as I can get it:
struct   nsGetServiceByContractID {
        nsGetServiceByContractID (const char *aContractID) :mContractID
(aContractID)   {   }
        const char *mContractID;
};
struct nsCOMPtr_base
{
        ~ nsCOMPtr_base ();
};
struct nsCOMPtr
{
        ~ nsCOMPtr ();
        void    assign_from_gs_contractid (const nsGetServiceByContractID);
        nsCOMPtr () { }
        nsCOMPtr (const nsGetServiceByContractID gs)
        {
                assign_from_gs_contractid (gs);
        }
        int  f();
};
const char kScriptSecurityManagerContractID[] = "f";
int CallOrConstruct ( int wrapper, char * argv )
{
        nsCOMPtr  sop;
        int prinOrSop = 0;
        nsCOMPtr secman = nsGetServiceByContractID
(kScriptSecurityManagerContractID);
        if (argv[0])
        {
                nsCOMPtr_base xpc ;
                if (wrapper)
                        prinOrSop = sop.f();
        }
        if (!prinOrSop)
                return 0;
        return 222;
}




--------------------------
If I change kScriptSecurityManagerContractID, not to be const, then the
tetstcase works which means even more PR 31036 is very related as that one has
the same issue with const decls too.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |31036
              nThis|                            |
           Severity|normal                      |blocker
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-03-04 20:56:47
               date|                            |
   Target Milestone|---                         |4.3.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31037

Reply via email to