[llvm-commits] Trivial warning

Hal Finkel hfinkel at anl.gov
Fri Nov 16 10:32:14 PST 2012


----- Original Message -----
> From: "Roman Divacky" <rdivacky at freebsd.org>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: llvm-commits at cs.uiuc.edu, "Joe Abbey" <jabbey at arxan.com>
> Sent: Friday, November 16, 2012 12:13:53 PM
> Subject: Re: [llvm-commits] Trivial warning
> 
> On Fri, Nov 16, 2012 at 11:38:07AM -0600, Hal Finkel wrote:
> > ----- Original Message -----
> > > From: "Benjamin Kramer" <benny.kra at gmail.com>
> > > To: "Joe Abbey" <jabbey at arxan.com>
> > > Cc: "Hal Finkel" <hfinkel at anl.gov>, llvm-commits at cs.uiuc.edu
> > > Sent: Friday, November 16, 2012 10:00:47 AM
> > > Subject: Re: [llvm-commits] Trivial warning
> > > 
> > > 
> > > On 16.11.2012, at 13:11, Joe Abbey <jabbey at arxan.com> wrote:
> > > 
> > > > On Nov 16, 2012, at 12:38 AM, Joe Abbey <jabbey at arxan.com>
> > > > wrote:
> > > > 
> > > >> Hal (et al),
> > > >> 
> > > >> One of my build bots reported a warning:
> > > >> PPCRegisterInfo.cpp:501:51: warning: cast from type ???const
> > > >> llvm::MachineFunction*??? to type ???llvm::MachineFunction*???
> > > >> casts
> > > >> away qualifiers [-Wcast-qual]
> > > >> Index: lib/Target/PowerPC/PPCRegisterInfo.cpp
> > > >> ===================================================================
> > > >> --- lib/Target/PowerPC/PPCRegisterInfo.cpp	(revision 168110)
> > > >> +++ lib/Target/PowerPC/PPCRegisterInfo.cpp	(working copy)
> > > >> @@ -498,7 +498,8 @@
> > > >>      } else if (CRSpillFrameIdx) {
> > > >>        FrameIdx = CRSpillFrameIdx;
> > > >>      } else {
> > > >> -      MachineFrameInfo *MFI = ((MachineFunction
> > > >> &)MF).getFrameInfo();
> > > >> +      MachineFrameInfo *MFI =
> > > >> +        (const_cast<MachineFunction &>MF).getFrameInfo();
> > > >>        FrameIdx = MFI->CreateFixedObject((uint64_t)4,
> > > >>        (int64_t)-4,
> > > >>        true);
> > > >>        CRSpillFrameIdx = FrameIdx;
> > > >>      }
> > > >> 
> > > >> Ok to commit?
> > > > 
> > > > Past Joe,
> > > > 
> > > > Make sure your current build is setup to do PowerPC builds.
> > > > 
> > > > Also, swapping a warning for an error is a horrible trade???
> > > > let's
> > > > try that patch again:
> > > > 
> > > > Index: lib/Target/PowerPC/PPCRegisterInfo.cpp
> > > > ===================================================================
> > > > --- lib/Target/PowerPC/PPCRegisterInfo.cpp	(revision 168110)
> > > > +++ lib/Target/PowerPC/PPCRegisterInfo.cpp	(working copy)
> > > > @@ -498,7 +498,8 @@
> > > >      } else if (CRSpillFrameIdx) {
> > > >        FrameIdx = CRSpillFrameIdx;
> > > >      } else {
> > > > -      MachineFrameInfo *MFI = ((MachineFunction
> > > > &)MF).getFrameInfo();
> > > > +      MachineFrameInfo *MFI =
> > > > +        (const_cast<MachineFunction &>(MF)).getFrameInfo();
> > > >        FrameIdx = MFI->CreateFixedObject((uint64_t)4,
> > > >        (int64_t)-4,
> > > >        true);
> > > >        CRSpillFrameIdx = FrameIdx;
> > > >      }
> > > 
> > > While this would be the right way to silence the warning, the
> > > whole
> > > thing looks like a horrible hack to me. Shouldn't the FrameIdx
> > > generated in a place where MF isn't const?
> > 
> > Roman, you had looked at these const issues, right? Do you have an
> > opinion on this?
> 
> I actively avoided any const_cast<>s in my const rage :)
> 
> This code was contributed by wschmidt@ and iirc it needs to be
> like this because PPC is special (addressing against fp).

Bill, opinion?

> 
> I think Bill didnt see an easy way to fix this. I think const_cast<>
> in here is better than C style cast.

Agreed.

 -Hal

> 
> Roman
> 

-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list