diff --git a/bindings/nodejs/consts/keystone.js b/bindings/nodejs/consts/keystone.js index 5034d6e64725df8a7baaf4d2b93ed43b7d5068ba..3bb9104edfcd62b5058e16dfe52a9d7aebc6be88 100644 --- a/bindings/nodejs/consts/keystone.js +++ b/bindings/nodejs/consts/keystone.js @@ -50,20 +50,20 @@ module.exports.ERR_ASM_DIRECTIVE_COMMA = 133 module.exports.ERR_ASM_DIRECTIVE_RELOC_NAME = 134 module.exports.ERR_ASM_DIRECTIVE_RELOC_TOKEN = 135 module.exports.ERR_ASM_DIRECTIVE_FPOINT = 136 -module.exports.ERR_ASM_DIRECTIVE_MACRO = 137 -module.exports.ERR_ASM_VARIANT_INVALID = 138 -module.exports.ERR_ASM_EXPR_BRACKET = 139 -module.exports.ERR_ASM_SYMBOL_MODIFIER = 140 -module.exports.ERR_ASM_SYMBOL_REDEFINED = 141 -module.exports.ERR_ASM_SYMBOL_MISSING = 142 -module.exports.ERR_ASM_RPAREN = 143 -module.exports.ERR_ASM_STAT_TOKEN = 144 -module.exports.ERR_ASM_UNSUPPORTED = 145 -module.exports.ERR_ASM_MACRO_TOKEN = 146 -module.exports.ERR_ASM_MACRO_PAREN = 147 -module.exports.ERR_ASM_MACRO_EQU = 148 -module.exports.ERR_ASM_MACRO_ARGS = 149 -module.exports.ERR_ASM_MACRO_LEVELS_EXCEED = 150 +module.exports.ERR_ASM_VARIANT_INVALID = 137 +module.exports.ERR_ASM_EXPR_BRACKET = 138 +module.exports.ERR_ASM_SYMBOL_MODIFIER = 139 +module.exports.ERR_ASM_SYMBOL_REDEFINED = 140 +module.exports.ERR_ASM_SYMBOL_MISSING = 141 +module.exports.ERR_ASM_RPAREN = 142 +module.exports.ERR_ASM_STAT_TOKEN = 143 +module.exports.ERR_ASM_UNSUPPORTED = 144 +module.exports.ERR_ASM_MACRO_TOKEN = 145 +module.exports.ERR_ASM_MACRO_PAREN = 146 +module.exports.ERR_ASM_MACRO_EQU = 147 +module.exports.ERR_ASM_MACRO_ARGS = 148 +module.exports.ERR_ASM_MACRO_LEVELS_EXCEED = 149 +module.exports.ERR_ASM_MACRO_STR = 150 module.exports.ERR_ASM_ESC_BACKSLASH = 151 module.exports.ERR_ASM_ESC_OCTAL = 152 module.exports.ERR_ASM_ESC_SEQUENCE = 153 diff --git a/bindings/python/keystone/keystone_const.py b/bindings/python/keystone/keystone_const.py index 16283c1aef9af8ac197cefcf4e8cd2355eb3bfe4..529022401fb620aca54ce9e00b9f36885115cfa7 100644 --- a/bindings/python/keystone/keystone_const.py +++ b/bindings/python/keystone/keystone_const.py @@ -50,20 +50,20 @@ KS_ERR_ASM_DIRECTIVE_COMMA = 133 KS_ERR_ASM_DIRECTIVE_RELOC_NAME = 134 KS_ERR_ASM_DIRECTIVE_RELOC_TOKEN = 135 KS_ERR_ASM_DIRECTIVE_FPOINT = 136 -KS_ERR_ASM_DIRECTIVE_MACRO = 137 -KS_ERR_ASM_VARIANT_INVALID = 138 -KS_ERR_ASM_EXPR_BRACKET = 139 -KS_ERR_ASM_SYMBOL_MODIFIER = 140 -KS_ERR_ASM_SYMBOL_REDEFINED = 141 -KS_ERR_ASM_SYMBOL_MISSING = 142 -KS_ERR_ASM_RPAREN = 143 -KS_ERR_ASM_STAT_TOKEN = 144 -KS_ERR_ASM_UNSUPPORTED = 145 -KS_ERR_ASM_MACRO_TOKEN = 146 -KS_ERR_ASM_MACRO_PAREN = 147 -KS_ERR_ASM_MACRO_EQU = 148 -KS_ERR_ASM_MACRO_ARGS = 149 -KS_ERR_ASM_MACRO_LEVELS_EXCEED = 150 +KS_ERR_ASM_VARIANT_INVALID = 137 +KS_ERR_ASM_EXPR_BRACKET = 138 +KS_ERR_ASM_SYMBOL_MODIFIER = 139 +KS_ERR_ASM_SYMBOL_REDEFINED = 140 +KS_ERR_ASM_SYMBOL_MISSING = 141 +KS_ERR_ASM_RPAREN = 142 +KS_ERR_ASM_STAT_TOKEN = 143 +KS_ERR_ASM_UNSUPPORTED = 144 +KS_ERR_ASM_MACRO_TOKEN = 145 +KS_ERR_ASM_MACRO_PAREN = 146 +KS_ERR_ASM_MACRO_EQU = 147 +KS_ERR_ASM_MACRO_ARGS = 148 +KS_ERR_ASM_MACRO_LEVELS_EXCEED = 149 +KS_ERR_ASM_MACRO_STR = 150 KS_ERR_ASM_ESC_BACKSLASH = 151 KS_ERR_ASM_ESC_OCTAL = 152 KS_ERR_ASM_ESC_SEQUENCE = 153 diff --git a/bindings/ruby/keystone_gem/lib/keystone/keystone_const.rb b/bindings/ruby/keystone_gem/lib/keystone/keystone_const.rb index 67622ee5a99ea278259e912145a2713ff3faf011..b818ef61ba003153033c9973070a0aad45ad7392 100644 --- a/bindings/ruby/keystone_gem/lib/keystone/keystone_const.rb +++ b/bindings/ruby/keystone_gem/lib/keystone/keystone_const.rb @@ -52,20 +52,20 @@ module Keystone KS_ERR_ASM_DIRECTIVE_RELOC_NAME = 134 KS_ERR_ASM_DIRECTIVE_RELOC_TOKEN = 135 KS_ERR_ASM_DIRECTIVE_FPOINT = 136 - KS_ERR_ASM_DIRECTIVE_MACRO = 137 - KS_ERR_ASM_VARIANT_INVALID = 138 - KS_ERR_ASM_EXPR_BRACKET = 139 - KS_ERR_ASM_SYMBOL_MODIFIER = 140 - KS_ERR_ASM_SYMBOL_REDEFINED = 141 - KS_ERR_ASM_SYMBOL_MISSING = 142 - KS_ERR_ASM_RPAREN = 143 - KS_ERR_ASM_STAT_TOKEN = 144 - KS_ERR_ASM_UNSUPPORTED = 145 - KS_ERR_ASM_MACRO_TOKEN = 146 - KS_ERR_ASM_MACRO_PAREN = 147 - KS_ERR_ASM_MACRO_EQU = 148 - KS_ERR_ASM_MACRO_ARGS = 149 - KS_ERR_ASM_MACRO_LEVELS_EXCEED = 150 + KS_ERR_ASM_VARIANT_INVALID = 137 + KS_ERR_ASM_EXPR_BRACKET = 138 + KS_ERR_ASM_SYMBOL_MODIFIER = 139 + KS_ERR_ASM_SYMBOL_REDEFINED = 140 + KS_ERR_ASM_SYMBOL_MISSING = 141 + KS_ERR_ASM_RPAREN = 142 + KS_ERR_ASM_STAT_TOKEN = 143 + KS_ERR_ASM_UNSUPPORTED = 144 + KS_ERR_ASM_MACRO_TOKEN = 145 + KS_ERR_ASM_MACRO_PAREN = 146 + KS_ERR_ASM_MACRO_EQU = 147 + KS_ERR_ASM_MACRO_ARGS = 148 + KS_ERR_ASM_MACRO_LEVELS_EXCEED = 149 + KS_ERR_ASM_MACRO_STR = 150 KS_ERR_ASM_ESC_BACKSLASH = 151 KS_ERR_ASM_ESC_OCTAL = 152 KS_ERR_ASM_ESC_SEQUENCE = 153 diff --git a/include/keystone/keystone.h b/include/keystone/keystone.h index 698368b2c1ab75cefade718f1aeda0b6485e4ab0..76f455eb7ea9eb775e372edde02e048de0d63b11 100644 --- a/include/keystone/keystone.h +++ b/include/keystone/keystone.h @@ -106,7 +106,6 @@ typedef enum ks_err { KS_ERR_ASM_DIRECTIVE_RELOC_NAME, // expected relocation name in directive KS_ERR_ASM_DIRECTIVE_RELOC_TOKEN, // unexpected token in .reloc directive KS_ERR_ASM_DIRECTIVE_FPOINT, // invalid floating point in directive - KS_ERR_ASM_DIRECTIVE_MACRO, // invalid floating point in directive KS_ERR_ASM_VARIANT_INVALID, // invalid variant KS_ERR_ASM_EXPR_BRACKET, // brackets expression not supported on this target KS_ERR_ASM_SYMBOL_MODIFIER, // unexpected symbol modifier following '@' @@ -120,6 +119,7 @@ typedef enum ks_err { KS_ERR_ASM_MACRO_EQU, // expected '=' after formal parameter identifier KS_ERR_ASM_MACRO_ARGS, // too many positional arguments KS_ERR_ASM_MACRO_LEVELS_EXCEED, // macros cannot be nested more than 20 levels deep + KS_ERR_ASM_MACRO_STR, // invalid macro string KS_ERR_ASM_ESC_BACKSLASH, // unexpected backslash at end of escaped string KS_ERR_ASM_ESC_OCTAL, // invalid octal escape sequence (out of range) KS_ERR_ASM_ESC_SEQUENCE, // invalid escape sequence (unrecognized character) diff --git a/llvm/keystone/ks.cpp b/llvm/keystone/ks.cpp index 461a646437859abfc7a5eaea64c957ad25f87168..3b1f7bc8fee43f9ade1cb92abc770208ea29c947 100644 --- a/llvm/keystone/ks.cpp +++ b/llvm/keystone/ks.cpp @@ -112,12 +112,16 @@ const char *ks_strerror(ks_err code) return "Too many positional arguments (KS_ERR_ASM_MACRO_ARGS)"; case KS_ERR_ASM_MACRO_LEVELS_EXCEED: // macros cannot be nested more than 20 levels deep return "Macros cannot be nested more than 20 levels deep (KS_ERR_ASM_MACRO_LEVELS_EXCEED)"; + case KS_ERR_ASM_MACRO_STR: // invalid macro string + return "Invalid macro string (KS_ERR_ASM_MACRO_STR)"; case KS_ERR_ASM_ESC_BACKSLASH: // unexpected backslash at end of escaped string return "Unexpected backslash at end of escaped string (KS_ERR_ASM_ESC_BACKSLASH)"; case KS_ERR_ASM_ESC_OCTAL: // invalid octal escape sequence (out of range) return "Invalid octal escape sequence (KS_ERR_ASM_ESC_OCTAL)"; case KS_ERR_ASM_ESC_SEQUENCE: // invalid escape sequence (unrecognized character) return "Invalid escape sequence (KS_ERR_ASM_ESC_SEQUENCE)"; + case KS_ERR_ASM_ESC_STR: // broken escape string + return "Invalid escape string (KS_ERR_ASM_ESC_STR)"; } } diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 38db993bcaa48d0e6008d17ff29eb5c27ed541c5..fc63e533f340e8310257e96fc88381ace7d75f79 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -2147,7 +2147,7 @@ bool AsmParser::expandMacro(raw_svector_ostream &OS, StringRef Body, bool valid; OS << Token.getStringContents(valid); if (!valid) { - KsError = KS_ERR_ASM_DIRECTIVE_MACRO; + KsError = KS_ERR_ASM_MACRO_STR; return true; } }