ABataev added inline comments.

================
Comment at: lib/Driver/ToolChain.cpp:553-559
+  // "platform" is only used in tests to override CLANG_DEFAULT_CXX_STDLIB
+  if (LibName == "libc++")
+    return ToolChain::CST_Libcxx;
+  else if (LibName == "libstdc++")
+    return ToolChain::CST_Libstdcxx;
+  else if (LibName == "platform")
+    return GetDefaultCXXStdlibType();
----------------
Hahnfeld wrote:
> mgorny wrote:
> > ABataev wrote:
> > > I believe you can use StringSwitch here
> > I think you are changing the meaning of this comment. The original sounded 
> > like a request not to use this type anywhere else. Your version only 
> > explains where it's used (right now).
> I'm uncertain how to apply it while also preserving the `Diag` for an invalid 
> argument: I would probably need an additional `CST_Unknown` which I don't 
> like more...
I think you can try something like this:
```
llvm::Optional<ToolChain::CXXStdlibType> Res = 
StringSwitch<ToolChain::CXXStdlibType, llvm::NoneType>(LibName).Case("libc++", 
ToolChain::CST_Libcxx).Case("libstdc++", 
ToolChain::CST_Libstdcxx).Case("platform", 
GetDefaultCXXStdlibType()).Default(llvm::None);
if (Res)
  return Res.getValue();
```


https://reviews.llvm.org/D25669



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

Reply via email to