================
Comment at: lib/Driver/SanitizerArgs.cpp:178
@@ +177,3 @@
+
+    Arg *DebugRTArg = nullptr;
+    if (Args.hasArg(options::OPT__SLASH_MTd))
----------------
ehsan wrote:
> samsonov wrote:
> > Can you use the following syntax here?
> >   if (Arg *WindowsDebugRTArg = Args.getLastArg(options::OPT__SLASH_MTd, 
> > options::OPT__SLASH_MDd,
> >       options::OPT__SLASH_LDd)) {
> >     D.Diag(...) << ....;
> >   }
> > 
> > Also, what is MSVC/clang-cl semantics if I pass "/MTd /MT"? Will it pick up 
> > the last flag (/MT), or try to link both runtimes?
> > In the first case we don't need to produce the error.
> When passing "/MTd /MT", /MTd will be ignored.  clang-cl honors that too.  I 
> should actually add a test case for that too.
MSVC generally implements "last flag wins" for conflicting flags, with some 
exceptions for things like /EH. They warn on it, but we don't because it's been 
the behavior in gcc for a long time.

http://reviews.llvm.org/D5764



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to