simoncook marked 2 inline comments as done.
simoncook added inline comments.


================
Comment at: clang/lib/Driver/ToolChains/Arch/RISCV.cpp:50
 
+static bool isExperimentalExtension(StringRef Ext) {
+  // Currently 'b' is the only supported experimental extension
----------------
rogfer01 wrote:
> Suggestion: I think we can avoid these two functions 
> (`isExperimentalExtension` and `getExperimentalExtensionVersion`) going out 
> of sync if we have only one of them and make it return an `llvm::Optional` of 
> the pair of versions.
> 
> Thent it can be used like this
> 
> ```lang=cpp
> if (auto ExperimentalExtension = isExperimentalExtension(Ext)) {
>    std::pair<StringRef, StringRef> SupportedVers = *ExperimentalVersion;
>    ...
> }
> ```
> 
> I'd also add a comment that the pair's `first` is the major version and 
> `second` is the minor version (or alternative use a struct with two public 
> fields `Major` and `Minor`)
That's a good idea, I'll update this to use this pattern.


================
Comment at: clang/lib/Driver/ToolChains/Arch/RISCV.cpp:396
+      I += Minor.size() + 1 /*'p'*/;
+    if (*I == '_')
+      ++I;
----------------
rogfer01 wrote:
> There is no test for that case but I'm afraid we can't test it yet, can we?
We can test for e.g. `rv32i_m` which is now accepted (GCC also accepts this 
option we didn't before), but the version number code I don't think there is 
until we support versions on more than one extension.


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

https://reviews.llvm.org/D73891



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

Reply via email to