On Wed, Jun 22, 2016 at 08:06:06AM -0400, Rafael Espíndola wrote:
> On 21 June 2016 at 19:04, Joerg Sonnenberger via cfe-commits
> <cfe-commits@lists.llvm.org> wrote:
> > On Tue, Jun 21, 2016 at 06:53:03PM -0400, Rafael Espíndola via cfe-commits 
> > wrote:
> >> diff --git a/lib/Frontend/InitPreprocessor.cpp 
> >> b/lib/Frontend/InitPreprocessor.cpp
> >> index 27ef59a..6b93c69 100644
> >> --- a/lib/Frontend/InitPreprocessor.cpp
> >> +++ b/lib/Frontend/InitPreprocessor.cpp
> >> @@ -873,10 +873,10 @@ static void InitializePredefinedMacros(const 
> >> TargetInfo &TI,
> >>    if (unsigned PICLevel = LangOpts.PICLevel) {
> >>      Builder.defineMacro("__PIC__", Twine(PICLevel));
> >>      Builder.defineMacro("__pic__", Twine(PICLevel));
> >> -  }
> >> -  if (unsigned PIELevel = LangOpts.PIELevel) {
> >> -    Builder.defineMacro("__PIE__", Twine(PIELevel));
> >> -    Builder.defineMacro("__pie__", Twine(PIELevel));
> >> +    if (LangOpts.PIE) {
> >> +      Builder.defineMacro("__PIE__", Twine(PICLevel));
> >> +      Builder.defineMacro("__pie__", Twine(PICLevel));
> >> +    }
> >>    }
> >>
> >>    // Macros to control C99 numerics and <float.h>
> >
> > This is the only part that I am somewhat nervous about, since it changes
> > behavior in an externally visible way. I'm not sure what the code
> > expectations are in the wild world right now.
> 
> I should not, or there is a bug.
> 
> It changes the driver to cc1 interface, but given driver invocation we
> should be creating identical defines.

OK, I retract that. I thought only one set of defines were ever present,
but guess it was the old behavior as well to have both for PIE.

Joerg
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to