# HG changeset patch # User mbaesken # Date 1563280956 -7200 # Node ID fb2b47f0e0679213890d332cdf8876bbb64c384e # Parent 6e1161923897c1efdc54c2b99752307e32063f0e 8227633: avoid comparing this pointers to NULL Reviewed-by: coleenp, mdoerr diff -r 6e1161923897 -r fb2b47f0e067 src/hotspot/share/adlc/formssel.cpp --- a/src/hotspot/share/adlc/formssel.cpp Fri Jul 19 02:40:59 2019 +0000 +++ b/src/hotspot/share/adlc/formssel.cpp Tue Jul 16 14:42:36 2019 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1513,7 +1513,7 @@ MatchNode *mnode = strcmp(_matrule->_opType, "Set") ? _matrule : _matrule->_rChild; - mnode->count_instr_names(names); + if (mnode != NULL) mnode->count_instr_names(names); uint first = 1; // Start with the predicate supplied in the .ad file. @@ -1726,26 +1726,25 @@ const char *description = NULL; const char *value = NULL; // Check if user provided any opcode definitions - if( this != NULL ) { - // Update 'value' if user provided a definition in the instruction - switch (desired_opcode) { - case PRIMARY: - description = "primary()"; - if( _primary != NULL) { value = _primary; } - break; - case SECONDARY: - description = "secondary()"; - if( _secondary != NULL ) { value = _secondary; } - break; - case TERTIARY: - description = "tertiary()"; - if( _tertiary != NULL ) { value = _tertiary; } - break; - default: - assert( false, "ShouldNotReachHere();"); - break; - } + // Update 'value' if user provided a definition in the instruction + switch (desired_opcode) { + case PRIMARY: + description = "primary()"; + if( _primary != NULL) { value = _primary; } + break; + case SECONDARY: + description = "secondary()"; + if( _secondary != NULL ) { value = _secondary; } + break; + case TERTIARY: + description = "tertiary()"; + if( _tertiary != NULL ) { value = _tertiary; } + break; + default: + assert( false, "ShouldNotReachHere();"); + break; } + if (value != NULL) { fprintf(fp, "(%s /*%s*/)", value, description); } @@ -3413,7 +3412,6 @@ // Count occurrences of operands names in the leaves of the instruction // match rule. void MatchNode::count_instr_names( Dict &names ) { - if( this == NULL ) return; if( _lChild ) _lChild->count_instr_names(names); if( _rChild ) _rChild->count_instr_names(names); if( !_lChild && !_rChild ) { diff -r 6e1161923897 -r fb2b47f0e067 src/hotspot/share/adlc/output_c.cpp --- a/src/hotspot/share/adlc/output_c.cpp Fri Jul 19 02:40:59 2019 +0000 +++ b/src/hotspot/share/adlc/output_c.cpp Tue Jul 16 14:42:36 2019 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2377,7 +2377,7 @@ _processing_noninput = false; // A replacement variable, originally '$' if ( Opcode::as_opcode_type(rep_var) != Opcode::NOT_AN_OPCODE ) { - if (!_inst._opcode->print_opcode(_fp, Opcode::as_opcode_type(rep_var) )) { + if ((_inst._opcode == NULL) || !_inst._opcode->print_opcode(_fp, Opcode::as_opcode_type(rep_var) )) { // Missing opcode _AD.syntax_err( _inst._linenum, "Missing $%s opcode definition in %s, used by encoding %s\n", @@ -2433,7 +2433,7 @@ else if( Opcode::as_opcode_type(inst_rep_var) != Opcode::NOT_AN_OPCODE ) { // else check if "primary", "secondary", "tertiary" assert( _constant_status == LITERAL_ACCESSED, "Must be processing a literal constant parameter"); - if (!_inst._opcode->print_opcode(_fp, Opcode::as_opcode_type(inst_rep_var) )) { + if ((_inst._opcode == NULL) || !_inst._opcode->print_opcode(_fp, Opcode::as_opcode_type(inst_rep_var) )) { // Missing opcode _AD.syntax_err( _inst._linenum, "Missing $%s opcode definition in %s\n", diff -r 6e1161923897 -r fb2b47f0e067 src/hotspot/share/libadt/set.cpp --- a/src/hotspot/share/libadt/set.cpp Fri Jul 19 02:40:59 2019 +0000 +++ b/src/hotspot/share/libadt/set.cpp Tue Jul 16 14:42:36 2019 +0200 @@ -43,7 +43,6 @@ // The caller must deallocate the string. char *Set::setstr() const { - if( this == NULL ) return os::strdup("{no set}"); Set &set = clone(); // Virtually copy the basic set. set.Sort(); // Sort elements for in-order retrieval