C-Breeze
C Compiler Infrastructure

[ Project home page]
Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

pointervalue.cc

Go to the documentation of this file.
00001 // $Id: pointervalue.cc,v 1.7 2003/08/07 23:14:31 pnav Exp $
00002 // ----------------------------------------------------------------------
00003 //
00004 //  C-Breeze
00005 //  C Compiler Framework
00006 // 
00007 //  Copyright (c) 2003 University of Texas at Austin
00008 // 
00009 //  Samuel Z. Guyer
00010 //  Adam Brown
00011 //  Teck Bok Tok
00012 //  Paul Arthur Navratil
00013 //  Calvin Lin
00014 // 
00015 //  Permission is hereby granted, free of charge, to any person
00016 //  obtaining a copy of this software and associated documentation
00017 //  files (the "Software"), to deal in the Software without
00018 //  restriction, including without limitation the rights to use, copy,
00019 //  modify, merge, publish, distribute, sublicense, and/or sell copies
00020 //  of the Software, and to permit persons to whom the Software is
00021 //  furnished to do so, subject to the following conditions:
00022 //  
00023 //  The above copyright notice and this permission notice shall be
00024 //  included in all copies or substantial portions of the Software.
00025 //  
00026 //  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
00027 //  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00028 //  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
00029 //  NONINFRINGEMENT.  IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT
00030 //  AUSTIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
00031 //  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
00032 //  OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
00033 //  THE SOFTWARE.
00034 //
00035 //  We acknowledge the C-to-C Translator from MIT Laboratory for
00036 //  Computer Science for inspiring parts of the C-Breeze design.
00037 //
00038 // ----------------------------------------------------------------------
00039 
00040 #include "c_breeze.h"
00041 #include "pointervalue.h"
00042 
00043 // ------------------------------------------------------------
00044 // pointerValue class
00045 // ------------------------------------------------------------
00046 
00047 int pointerValue::count = 0;
00048 
00049 pointerValue::pointerValue()
00050   : blocks(),
00051     // value(0),
00052     constant_value(0),
00053     is_address(false),
00054     is_a_use(false),
00055     dereferenced()
00056 {
00057   count++;
00058 }
00059 
00060 pointerValue::pointerValue(memoryBlock * mb, bool is_address)
00061   : blocks(),
00062     // value(0),
00063     constant_value(0),
00064     is_address(is_address),
00065     is_a_use(false),
00066     dereferenced()
00067 {
00068   blocks.insert(mb);
00069   count++;
00070 }
00074 pointerValue::pointerValue(const pointerValue & other)
00075   : blocks(other.blocks),
00076     constant_value(other.constant_value),
00077     is_address(other.is_address),
00078     is_a_use(other.is_a_use),
00079     dereferenced(other.dereferenced)
00080 {
00081   count++;
00082 }
00083 
00084  
00085 pointerValue::~pointerValue()
00086 {
00087   count--;
00088 }

Generated on August 27, 2003
Back to the C-Breeze home page