00001 #ifndef REFERENCE_ATTRIBUTES_H_INCLUDED_
00002 #define REFERENCE_ATTRIBUTES_H_INCLUDED_
00003
00004 #include "rose.h"
00005
00006 #include<set>
00007
00008 namespace risc {
00009
00010 namespace sg {
00011
00012 class FunctionParameterReferenceAttribute: public AstAttribute {
00013
00014 public:
00015
00016
00017 virtual AstAttribute::OwnershipPolicy getOwnershipPolicy() const ROSE_OVERRIDE
00018 {
00019 return CONTAINER_OWNERSHIP;
00020 }
00021
00022 std::set<SgVariableSymbol*> mapped_variables_;
00023 };
00024
00025 class LocalReferenceAttribute: public AstAttribute {
00026 public:
00027
00028
00029 virtual AstAttribute::OwnershipPolicy getOwnershipPolicy() const ROSE_OVERRIDE
00030 {
00031 return CONTAINER_OWNERSHIP;
00032 }
00033
00034 SgVariableSymbol *mapped_variable_;
00035 };
00036
00037 }
00038
00039 }
00040
00041 #endif
00042
00043