Thread

  1. compiler warning

    Bruce Momjian <bruce@momjian.us> — 2011-02-03T03:40:11Z

    I am seeing the following compiler warning for the past few days:
    
    	basebackup.c:213: warning: variable `ptr' might be clobbered by
    	`longjmp' or `vfork'
    
    and I see this comment in the file:
    
    	/*
    	 * Actually do a base backup for the specified tablespaces.
    	 *
    	 * This is split out mainly to avoid complaints about "variable might be
    	 * clobbered by longjmp" from stupider versions of gcc.
    	 */
    
    Seems that isn't working as expected.  I am using:
    
    	gcc version 2.95.3 20010315 (release)
    
    with -O1.
    
    -- 
      Bruce Momjian  <bruce@momjian.us>        http://momjian.us
      EnterpriseDB                             http://enterprisedb.com
    
      + It's impossible for everything to be true. +
    
    
  2. Re: compiler warning

    Magnus Hagander <magnus@hagander.net> — 2011-02-03T08:22:13Z

    On Thu, Feb 3, 2011 at 04:40, Bruce Momjian <bruce@momjian.us> wrote:
    > I am seeing the following compiler warning for the past few days:
    >
    >        basebackup.c:213: warning: variable `ptr' might be clobbered by
    >        `longjmp' or `vfork'
    >
    > and I see this comment in the file:
    >
    >        /*
    >         * Actually do a base backup for the specified tablespaces.
    >         *
    >         * This is split out mainly to avoid complaints about "variable might be
    >         * clobbered by longjmp" from stupider versions of gcc.
    >         */
    >
    > Seems that isn't working as expected.  I am using:
    >
    >        gcc version 2.95.3 20010315 (release)
    >
    > with -O1.
    
    This is the same warning Tom fixed earlier. I have no idea what
    actually causes it :(
    
    I think it's somehow caused by the PG_ENSURE_ERROR_CLEANUP  stuff.
    Does it go away if you break everything inside the if
    (opt->includewal) into it's own function? (Or at least everything
    except the pq_putemptymessage() call, because moving that would make
    the code very confusing)
    
    
    -- 
     Magnus Hagander
     Me: http://www.hagander.net/
     Work: http://www.redpill-linpro.com/
    
    
  3. Re: compiler warning

    Bruce Momjian <bruce@momjian.us> — 2011-02-05T04:28:57Z

    Magnus Hagander wrote:
    > On Thu, Feb 3, 2011 at 04:40, Bruce Momjian <bruce@momjian.us> wrote:
    > > I am seeing the following compiler warning for the past few days:
    > >
    > > ? ? ? ?basebackup.c:213: warning: variable `ptr' might be clobbered by
    > > ? ? ? ?`longjmp' or `vfork'
    > >
    > > and I see this comment in the file:
    > >
    > > ? ? ? ?/*
    > > ? ? ? ? * Actually do a base backup for the specified tablespaces.
    > > ? ? ? ? *
    > > ? ? ? ? * This is split out mainly to avoid complaints about "variable might be
    > > ? ? ? ? * clobbered by longjmp" from stupider versions of gcc.
    > > ? ? ? ? */
    > >
    > > Seems that isn't working as expected. ?I am using:
    > >
    > > ? ? ? ?gcc version 2.95.3 20010315 (release)
    > >
    > > with -O1.
    > 
    > This is the same warning Tom fixed earlier. I have no idea what
    > actually causes it :(
    > 
    > I think it's somehow caused by the PG_ENSURE_ERROR_CLEANUP  stuff.
    > Does it go away if you break everything inside the if
    > (opt->includewal) into it's own function? (Or at least everything
    > except the pq_putemptymessage() call, because moving that would make
    > the code very confusing)
    
    I added the attached C comment so we know why the warning is generated. 
    We can remove it later if we want, but I want to have it if we get
    reports about 9.1 problems.
    
    -- 
      Bruce Momjian  <bruce@momjian.us>        http://momjian.us
      EnterpriseDB                             http://enterprisedb.com
    
      + It's impossible for everything to be true. +