tra added a comment. In D110622#3177490 <https://reviews.llvm.org/D110622#3177490>, @yaxunl wrote:
> I don't think `--offload=` is restricted to be specified only once. The test > checks `--offload-arch=` and `--offload=` are mutually exclusive. It effectively is. See my inline comment. // RUN: %clang -### -x hip -target x86_64-linux-gnu --offload=foo,bar \ // RUN: --hip-path=%S/Inputs/hipspv -nogpuinc -nogpulib %s \ // RUN: 2>&1 | FileCheck --check-prefix=TOO-MANY-TARGETS %s // TOO-MANY-TARGETS: error: Only one offload target is supported in HIP. ================ Comment at: clang/lib/Driver/Driver.cpp:105-109 + auto HIPOffloadTargets = Args.getAllArgValues(options::OPT_offload_EQ); + switch (HIPOffloadTargets.size()) { + default: + D.Diag(diag::err_drv_only_one_offload_target_supported_in) << "HIP"; + return llvm::None; ---------------- ^^^ This will cause issues in practice, as we're only allowed to specify --offload once. I.e. we're neither allowed to override it (this goes contrary to how clang options are handled conventionally), nor can we extend or modify the list of offload variants as we can with --offload-arch. This code initially used `getLastArg`, but that does not work for an option that controls a list of values. Perhaps we should just make `--offload=` a scalar value so it, at least, behaves consistently with other clang options. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D110622/new/ https://reviews.llvm.org/D110622 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits