Path: blob/master/src/hotspot/share/ci/ciClassList.hpp
40930 views
/*1* Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*22*/2324#ifndef SHARE_CI_CICLASSLIST_HPP25#define SHARE_CI_CICLASSLIST_HPP2627class ciEnv;28class ciObjectFactory;29class ciConstantPoolCache;3031class ciField;32class ciConstant;33class ciFlags;34class ciExceptionHandler;35class ciCallProfile;36class ciSignature;3738class ciBytecodeStream;39class ciSignatureStream;40class ciExceptionHandlerStream;4142class ciTypeFlow;4344class ciBaseObject;45class ciObject;46class ciNullObject;47class ciInstance;48class ciCallSite;49class ciMemberName;50class ciNativeEntryPoint;51class ciMethodHandle;52class ciMethodType;53class ciArray;54class ciObjArray;55class ciTypeArray;56class ciSymbol;57class ciMetadata;58class ciMethod;59class ciMethodData;60class ciReceiverTypeData; // part of ciMethodData61class ciType;62class ciReturnAddress;63class ciKlass;64class ciInstanceKlass;65class ciArrayKlass;66class ciObjArrayKlass;67class ciTypeArrayKlass;6869// Simulate Java Language style package-private access with70// friend declarations.71// This is a great idea but gcc and other C++ compilers give an72// error for being friends with yourself, so this macro does not73// compile on some platforms.7475// Everyone gives access to ciObjectFactory76#define CI_PACKAGE_ACCESS \77friend class ciObjectFactory; \78friend class VMStructs;7980// These are the packages that have access to ciEnv81// Any more access must be given explicitly.82#define CI_PACKAGE_ACCESS_TO \83friend class ciObjectFactory; \84friend class VMStructs; \85friend class ciCallSite; \86friend class ciConstantPoolCache; \87friend class ciField; \88friend class ciConstant; \89friend class ciFlags; \90friend class ciExceptionHandler; \91friend class ciCallProfile; \92friend class ciSignature; \93friend class ciBytecodeStream; \94friend class ciSignatureStream; \95friend class ciExceptionHandlerStream; \96friend class ciObject; \97friend class ciNullObject; \98friend class ciInstance; \99friend class ciMemberName; \100friend class ciNativeEntryPoint; \101friend class ciMethod; \102friend class ciMethodData; \103friend class ciMethodHandle; \104friend class ciMethodType; \105friend class ciReceiverTypeData; \106friend class ciTypeEntries; \107friend class ciSpeculativeTrapData; \108friend class ciSymbol; \109friend class ciArray; \110friend class ciObjArray; \111friend class ciMetadata; \112friend class ciReplay; \113friend class ciTypeArray; \114friend class ciType; \115friend class ciReturnAddress; \116friend class ciKlass; \117friend class ciInstanceKlass; \118friend class ciArrayKlass; \119friend class ciObjArrayKlass; \120friend class ciTypeArrayKlass; \121122#endif // SHARE_CI_CICLASSLIST_HPP123124125