comparing this to NULL in HS - code - was : 8208604: Metadata::print_value_string() compares 'this' to NULL
Harold David Seigel
harold.seigel at oracle.com
Tue Aug 7 14:02:55 UTC 2018
Hi Matthias,
I created https://bugs.openjdk.java.net/browse/JDK-8209079 to track this
issue.
Thanks, Harold
On 8/7/2018 6:46 AM, Baesken, Matthias wrote:
> Hello,
>
> seems we have still quite a few places in the HS C++ codebase where "this" is compared to NULL.
>
> Recently 8208604: Metadata::print_value_string() compares 'this' to NULL :
> https://bugs.openjdk.java.net/browse/JDK-8208604
> fixed one place and stated :
> "The compiler is free to elide this test, since (this == NULL) can never be true; applying an ordinary member function to NULL invokes undefined behavior."
>
>
> Should we change the other checks as well ?
>
> Thanks, Matthias
>
> I found these checks :
>
>
> jdk/src/hotspot/share/adlc/formssel.cpp
>
> 1727bool Opcode::print_opcode(FILE *fp, Opcode::opcode_type desired_opcode) {
> 1728 // Default values previously provided by MachNode::primary()...
> 1729 const char *description = NULL;
> 1730 const char *value = NULL;
> 1731 // Check if user provided any opcode definitions
> 1732 if( this != NULL ) {
>
>
> 3417void MatchNode::count_instr_names( Dict &names ) {
> 3418 if( this == NULL ) return;
>
>
> jdk/src/hotspot/share/opto/chaitin.cpp
>
> 2147char *PhaseChaitin::dump_register( const Node *n, char *buf ) const {
> 2148 if( this == NULL ) { // Not got anything?
> 2149 sprintf(buf,"N%d",n->_idx); // Then use Node index
> 2150 } else if( _node_regs ) {
>
>
> jdk/src/hotspot/share/asm/codeBuffer.cpp
>
> 1241void CodeBuffer::print() {
> 1242 if (this == NULL) {
> 1243 tty->print_cr("NULL CodeBuffer pointer");
>
> jdk/src/hotspot/share/runtime/perfData.cpp
>
> 593PerfData* PerfDataList::find_by_name(const char* name) {
> 594
> 595 // if add_item hasn't been called the list won't be initialized
> 596 if (this == NULL)
> 597 return NULL;
>
> jdk/src/hotspot/share/libadt/set.cpp
>
> 58char *Set::setstr() const
> 59{
> 60 if( this == NULL ) return os::strdup("{no set}");
>
>
> jdk/src/hotspot/share/oops/symbol.cpp
>
> 295void Symbol::print_on(outputStream* st) const {
> 296 if (this == NULL) {
> 297 st->print_cr("NULL");
>
> 308void Symbol::print_value_on(outputStream* st) const {
> 309 if (this == NULL) {
> 310 st->print("NULL");
More information about the hotspot-dev
mailing list