jmgao marked 8 inline comments as done.

================
Comment at: tools/clang/lib/CodeGen/CGExpr.cpp:2388
@@ +2387,3 @@
+  }
+  return EmitTrapCheck(Checked);
+}
----------------
samsonov wrote:
> This is confusing. So, you have the following behavior whenever you need to 
> emit a check for `-fsanitize-trap=foo`:
>   # Emit a call to `-fsanitize-trap-function`, if it's specified
>   # Otherwise, emit a call to `-ftrap-function`, if it's specified
>   # Otherwise, emit a trap instruction.
> 
> Do you really want it? Don't you need to skip (2) instead? If you do, you 
> should carefully document it.
> 
> 
My interpretation of the current `-ftrap-function` help text ("Issue call to 
specified function rather than a trap instruction") is that if 
`-ftrap-function` is specified, clang should never emit a trap instruction if 
defined. Does this seem reasonable?

I added a blurb to UsersManual.rst saying that it falls back to 
`-ftrap-function` if not specified.

================
Comment at: tools/clang/lib/CodeGen/CGExpr.cpp:2422
@@ -2404,1 +2421,3 @@
+
 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
+  return EmitTrapCall(IntrID, CGM.getCodeGenOpts().TrapFuncName);
----------------
samsonov wrote:
> Isn't it easier to just kill this function, and always pass in 
> CGM.getCodeGenOpts().TrapFuncName where applicable?
It's used in a few other places (`__builtin_trap`, `__builtin_debugtrap`, fall 
off the end of a function in -O0), so I think it's probably easier (and less 
error prone) to keep a copy of the function that fetches the TrapFuncName 
itself.


http://reviews.llvm.org/D12181



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

Reply via email to