jansvoboda11 added a comment.

@SjoerdMeijer If you're not comfortable reviewing this, do you know of anyone 
who might want to take a look?


================
Comment at: clang/lib/Frontend/CompilerInvocation.cpp:3080
   }
   Opts.setFPExceptionMode(FPEB);
 
----------------
SjoerdMeijer wrote:
> jansvoboda11 wrote:
> > The parsing of `OPT_ftrapping_math` and `OPT_fno_trapping_math` is 
> > immediately overwritten here.
> Yeah, I did some work in this area some years ago, but that's a few years 
> ago, and then in addition to that, we are talking about option handling in 
> Clang which I always find very confusing... Just saying I can't remember too 
> many details at this point.
> 
> But starting with a first observation, you're saying that things are 
> overwritten here, but they are different options. I.e., the deleted part 
> honours `OPT_ftrapping_math`, and here exception modes are set based on 
> `OPT_ffp_exception_behavior`. So, looks like there is some interaction 
> here... Do we know how this should work?
I see. The thing is, before this patch, we call `Opts.setFPExceptionMode` 
whenever we see either `OPT_ftrapping_math` or `OPT_fno_trapping_math`.

But then, we **unconditionally** call `Opts.setFPExceptionMode(FPEB)` again 
here. That **always** overwrites what we previously did for 
`OPT_f[no_]trapping_math`, making that a dead code.

`Opts.setFPExceptionMode()` doesn't do anything fancy, just assigns the 
argument to the `Opts.FPExceptionModel` member.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D93395/new/

https://reviews.llvm.org/D93395

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

Reply via email to