[clang-tools-extra] [clang] [Attributes][HLSL] Teach EnumArgument to refer to an external enum (PR #70835)
Justin Bogner via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 31 12:19:21 PDT 2023
================
@@ -898,23 +898,29 @@ namespace {
}
class EnumArgument : public Argument {
- std::string type;
+ std::string fullType;
+ StringRef shortType;
std::vector<StringRef> values, enums, uniques;
+ bool isExternal;
public:
EnumArgument(const Record &Arg, StringRef Attr)
- : Argument(Arg, Attr), type(std::string(Arg.getValueAsString("Type"))),
- values(Arg.getValueAsListOfStrings("Values")),
+ : Argument(Arg, Attr), values(Arg.getValueAsListOfStrings("Values")),
enums(Arg.getValueAsListOfStrings("Enums")),
- uniques(uniqueEnumsInOrder(enums)) {
+ uniques(uniqueEnumsInOrder(enums)),
+ isExternal(Arg.getValueAsBit("External")) {
+ StringRef Type = Arg.getValueAsString("Type");
+ shortType = isExternal ? getAttrName().rsplit("::").second : Type;
----------------
bogner wrote:
Looks like `isValidAsciiIdentifier` from `clang/Basic/CharInfo.h` will do the trick
https://github.com/llvm/llvm-project/pull/70835
More information about the cfe-commits
mailing list