1 // -*- mode: C++ -*- 2 // 3 // Copyright (c) 2008, 2009, 2010, 2011 The University of Utah 4 // All rights reserved. 5 // 6 // This file is part of `csmith', a random generator of C programs. 7 // 8 // Redistribution and use in source and binary forms, with or without 9 // modification, are permitted provided that the following conditions are met: 10 // 11 // * Redistributions of source code must retain the above copyright notice, 12 // this list of conditions and the following disclaimer. 13 // 14 // * Redistributions in binary form must reproduce the above copyright 15 // notice, this list of conditions and the following disclaimer in the 16 // documentation and/or other materials provided with the distribution. 17 // 18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 22 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 // POSSIBILITY OF SUCH DAMAGE. 29 30 #ifndef EXTENSION_VALUE_H 31 #define EXTENSION_VALUE_H 32 33 #include <string> 34 #include "CVQualifiers.h" 35 36 class Type; 37 class Constant; 38 39 class ExtensionValue { 40 public: 41 ExtensionValue(const Type *type, std::string name); 42 43 ~ExtensionValue(); 44 get_type(void)45 const Type *get_type(void) { return type_; } 46 get_value(void)47 Constant *get_value(void) { return value_; } 48 get_name(void)49 const std::string &get_name(void) { return name_; } 50 get_qfer()51 CVQualifiers get_qfer() { return qfer_; } 52 set_value(Constant * value)53 void set_value(Constant *value) { value_ = value; } 54 55 private: 56 const Type *type_; 57 58 Constant *value_; 59 60 const std::string name_; 61 62 CVQualifiers qfer_; 63 }; 64 65 #endif // EXTENSION_VALUE_H 66