================ @@ -172,26 +197,13 @@ class Directive : public BaseRecord { // Clang uses a different format for names of its directives enum. std::string getClangAccSpelling() const { - std::string Name = Def->getValueAsString("name").str(); + StringRef Name = Def->getValueAsString("name"); // Clang calls the 'unknown' value 'invalid'. if (Name == "unknown") return "Invalid"; - // Clang entries all start with a capital letter, so apply that. - Name[0] = std::toupper(Name[0]); - // Additionally, spaces/underscores are handled by capitalizing the next - // letter of the name and removing the space/underscore. - for (unsigned I = 0; I < Name.size(); ++I) { - if (Name[I] == ' ' || Name[I] == '_') { - Name.erase(I, 1); - assert(Name[I] != ' ' && Name[I] != '_' && - "No double spaces/underscores"); - Name[I] = std::toupper(Name[I]); - } - } - - return Name; + return BaseRecord::getUpperCamelName(Name, " _"); ---------------- kparzysz wrote:
Yes, the previous code removed both a space and an underscore. https://github.com/llvm/llvm-project/pull/141762 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits