diff --git a/tools/llvmc2/doc/LLVMC-Reference.rst b/tools/llvmc2/doc/LLVMC-Reference.rst index bd55f38cc46..af0c8b7b2b7 100644 --- a/tools/llvmc2/doc/LLVMC-Reference.rst +++ b/tools/llvmc2/doc/LLVMC-Reference.rst @@ -375,16 +375,16 @@ use TableGen inheritance instead. - ``input_languages_contain`` - Returns true if a given language belongs to the current input language set. Example: - ```(input_languages_contain "c++")``. + ``(input_languages_contain "c++")``. - ``in_language`` - Evaluates to true if the language of the input - file equals to the argument. Valid only when using ``case`` - expression in a ``cmd_line`` tool property. Example: - ```(in_language "c++")``. + file equals to the argument. At the moment works only with + ``cmd_line`` property on non-join nodes. Example: ``(in_language + "c++")``. - ``not_empty`` - Returns true if a given option (which should be either a parameter or a parameter list) is set by the - user. Example: ```(not_empty "o")``. + user. Example: ``(not_empty "o")``. - ``default`` - Always evaluates to true. Should always be the last test in the ``case`` expression. diff --git a/utils/TableGen/LLVMCConfigurationEmitter.cpp b/utils/TableGen/LLVMCConfigurationEmitter.cpp index 133415bf73b..9bfb5da88f9 100644 --- a/utils/TableGen/LLVMCConfigurationEmitter.cpp +++ b/utils/TableGen/LLVMCConfigurationEmitter.cpp @@ -826,8 +826,10 @@ bool EmitCaseTest1Arg(const std::string& TestName, O << "InLangs.count(\"" << OptName << "\") != 0"; return true; } else if (TestName == "in_language") { - // TODO: remove this restriction - // Works only for cmd_line! + // This works only for single-argument Tool::GenerateAction. Join + // tools can process several files in different languages simultaneously. + + // TODO: make this work with Edge::Weight (if possible). O << "LangMap.GetLanguage(inFile) == \"" << OptName << '\"'; return true; } else if (TestName == "not_empty") {