diff options
Diffstat (limited to 'lib/AsmParser/llvmAsmParser.y')
-rw-r--r-- | lib/AsmParser/llvmAsmParser.y | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index 1fd8782..aec7b38 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -910,7 +910,7 @@ Module *llvm::RunVMAsmParser(const std::string &Filename, FILE *F) { %token DECLARE GLOBAL CONSTANT VOLATILE %token TO DOTDOTDOT NULL_TOK CONST INTERNAL LINKONCE WEAK APPENDING %token OPAQUE NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG -%token DEPLIBS +%token DEPLIBS PASSES // Basic Block Terminating Operators %token <TermOpVal> RET BR SWITCH INVOKE UNWIND @@ -1484,6 +1484,8 @@ ConstPool : ConstPool OptAssign TYPE TypesV { // Types can be defined in the co } | ConstPool DEPLIBS '=' LibrariesDefinition { } + | ConstPool PASSES '=' PassesDefinition { + } | /* empty: end of list */ { }; @@ -1522,6 +1524,19 @@ LibList : LibList ',' STRINGCONSTANT { } ; +PassesDefinition : '[' PassList ']'; +PassList : PassList ',' STRINGCONSTANT { + CurModule.CurrentModule->addLibrary($3); + free($3); + } + | STRINGCONSTANT { + CurModule.CurrentModule->addLibrary($1); + free($1); + } + | /* empty: end of list */ { + } + ; + //===----------------------------------------------------------------------===// // Rules to match Function Headers //===----------------------------------------------------------------------===// |