70 lines
2.2 KiB
C++
70 lines
2.2 KiB
C++
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
Copyright (c) 1999-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ilanaly.cxx
|
|
|
|
Abstract:
|
|
|
|
Intermediate langangage analyzer/optimizer
|
|
|
|
Notes:
|
|
|
|
|
|
Author:
|
|
|
|
mzoran Dec-13-1999 Created.
|
|
|
|
Notes:
|
|
|
|
----------------------------------------------------------------------------*/
|
|
|
|
class CG_ILANALYSIS_INFO
|
|
{
|
|
private:
|
|
unsigned long bIsConformant : 1;
|
|
unsigned long bIsVarying : 1;
|
|
unsigned long bIsForcedBogus : 1;
|
|
unsigned long bIsFullBogus : 1;
|
|
unsigned long bIsMutiDimensional : 1;
|
|
unsigned long bHasUnknownBuffer : 1;
|
|
unsigned long bIsArrayofStrings : 1;
|
|
|
|
unsigned long Dimensions : 8;
|
|
|
|
public:
|
|
CG_ILANALYSIS_INFO() :
|
|
bIsConformant( false ),
|
|
bIsVarying( false ),
|
|
bIsForcedBogus( false ),
|
|
bIsFullBogus( false ),
|
|
bIsMutiDimensional( false ),
|
|
bHasUnknownBuffer( false ),
|
|
bIsArrayofStrings( false )
|
|
{
|
|
}
|
|
|
|
bool IsConformant() { return (bool)bIsConformant; }
|
|
bool IsVarying() { return (bool)bIsVarying; }
|
|
bool IsForcedBogus() { return (bool)bIsForcedBogus; }
|
|
bool IsFullBogus() { return (bool)bIsFullBogus; }
|
|
bool IsMultiDimensional() { return (bool)bIsMutiDimensional; }
|
|
bool HasUnknownBuffer() { return (bool)bHasUnknownBuffer; }
|
|
bool IsArrayofStrings() { return (bool)bIsArrayofStrings; }
|
|
unsigned char GetDimensions() { return (unsigned char)Dimensions; }
|
|
|
|
void SetIsConformant( ) { bIsConformant = true; }
|
|
void SetIsVarying( ) { bIsVarying = true; }
|
|
void SetIsForcedBogus( ) { bIsForcedBogus = true; }
|
|
void SetIsFullBogus( ) { bIsFullBogus = true; }
|
|
void SetIsMutiDimensional( ) { bIsMutiDimensional = true; }
|
|
void SetHasUnknownBuffer( ) { bHasUnknownBuffer = true; }
|
|
void SetIsArrayofStrings( ) { bIsArrayofStrings = true; }
|
|
void SetDimensions(unsigned char NewDims) { Dimensions = NewDims; }
|
|
|
|
void MergeAttributes( CG_ILANALYSIS_INFO *pMerge );
|
|
};
|
|
|
|
|