# HG changeset patch # User never # Date 1309969674 25200 # Node ID fe240d87c6ece0e5a81d9e4039835a0d5d38c8d8 # Parent 15559220ce7973404d60ad7fff3eb171eb7439ef 7061101: adlc should complain about mixing block and expression forms of ins_encode Reviewed-by: kvn diff -r 15559220ce79 -r fe240d87c6ec src/share/vm/adlc/adlparse.cpp --- a/src/share/vm/adlc/adlparse.cpp Tue Jul 05 16:07:54 2011 -0700 +++ b/src/share/vm/adlc/adlparse.cpp Wed Jul 06 09:27:54 2011 -0700 @@ -2812,6 +2812,13 @@ params->add_entry(param); } + // Check for duplicate ins_encode sections after parsing the block + // so that parsing can continue and find any other errors. + if (inst._insencode != NULL) { + parse_err(SYNERR, "Multiple ins_encode sections defined\n"); + return; + } + // Set encode class of this instruction. inst._insencode = encrule; } @@ -3044,6 +3051,13 @@ next_char(); // move past ';' skipws(); // be friendly to oper_parse() + // Check for duplicate ins_encode sections after parsing the block + // so that parsing can continue and find any other errors. + if (inst._insencode != NULL) { + parse_err(SYNERR, "Multiple ins_encode sections defined\n"); + return; + } + // Debug Stuff if (_AD._adl_debug > 1) fprintf(stderr,"Instruction Encode: %s\n", ec_name);