dberris added inline comments.

================
Comment at: lib/Driver/ToolChains/OpenBSD.cpp:189
       if (getToolChain().ShouldLinkCXXStdlib(Args))
-        getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs);
+        ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);
       if (Args.hasArg(options::OPT_pg))
----------------
Do you actually need this change? Why isn't 
`getToolChain().AddCXXStdlibLibArgs(...)` not sufficient here?


================
Comment at: lib/Driver/ToolChains/OpenBSD.cpp:197-199
+      if (getToolChain().getSanitizerArgs().needsFuzzer() &&
+        !Args.hasArg(options::OPT_shared))
+        CmdArgs.push_back(Args.hasArg(options::OPT_pg) ? "-lc++_p" : "-lc++");
----------------
Doesn't the common args implementation already handle this case? What am I 
missing?


================
Comment at: lib/Driver/ToolChains/OpenBSD.cpp:265-269
+void OpenBSD::AddCXXStdlibLibArgs(const ArgList &Args,
+                                  ArgStringList &CmdArgs) const {
+  bool Profiling = Args.hasArg(options::OPT_pg);
+  CmdArgs.push_back(Profiling ? "-lstdc++_p" : "-lstdc++");
+}
----------------
Almost there -- but I think you want to look at the implementation of something 
like the FreeBSD driver which does a suitably complete definition, which 
supports either libstdc++ or libc++.

That way you don't need the other change specific to when you need the 
sanitizer deps, and rely on the default implementation for LibFuzzer in 
CommonArgs. No?

Am looking at https://clang.llvm.org/doxygen/FreeBSD_8cpp_source.html#l00345 
for reference.


https://reviews.llvm.org/D45662



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

Reply via email to