src/hotspot/share/classfile/verifier.hpp
changeset 49364 601146c66cad
parent 48826 c4d9d1b08e2e
child 49594 898ef81cbc0e
equal deleted inserted replaced
49363:7be58576e71a 49364:601146c66cad
     1 /*
     1 /*
     2  * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    94 #define CHECK_VERIFY(verifier) \
    94 #define CHECK_VERIFY(verifier) \
    95   CHECK); if ((verifier)->has_error()) return; ((void)0
    95   CHECK); if ((verifier)->has_error()) return; ((void)0
    96 #define CHECK_VERIFY_(verifier, result) \
    96 #define CHECK_VERIFY_(verifier, result) \
    97   CHECK_(result)); if ((verifier)->has_error()) return (result); ((void)0
    97   CHECK_(result)); if ((verifier)->has_error()) return (result); ((void)0
    98 
    98 
    99 class TypeOrigin VALUE_OBJ_CLASS_SPEC {
    99 class TypeOrigin {
   100  private:
   100  private:
   101   typedef enum {
   101   typedef enum {
   102     CF_LOCALS,  // Comes from the current frame locals
   102     CF_LOCALS,  // Comes from the current frame locals
   103     CF_STACK,   // Comes from the current frame expression stack
   103     CF_STACK,   // Comes from the current frame expression stack
   104     SM_LOCALS,  // Comes from stackmap locals
   104     SM_LOCALS,  // Comes from stackmap locals
   144 #ifdef ASSERT
   144 #ifdef ASSERT
   145   void print_on(outputStream* str) const;
   145   void print_on(outputStream* str) const;
   146 #endif
   146 #endif
   147 };
   147 };
   148 
   148 
   149 class ErrorContext VALUE_OBJ_CLASS_SPEC {
   149 class ErrorContext {
   150  private:
   150  private:
   151   typedef enum {
   151   typedef enum {
   152     INVALID_BYTECODE,     // There was a problem with the bytecode
   152     INVALID_BYTECODE,     // There was a problem with the bytecode
   153     WRONG_TYPE,           // Type value was not as expected
   153     WRONG_TYPE,           // Type value was not as expected
   154     FLAGS_MISMATCH,       // Frame flags are not assignable
   154     FLAGS_MISMATCH,       // Frame flags are not assignable