OpenADFortTk (including Open64 and OpenAnalysis references)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ScalarizedRef.h
Go to the documentation of this file.
1 #ifndef ScalarizedRef_H
2 #define ScalarizedRef_H
3 
5 
6 namespace fortTkSupport {
7 
13  class ScalarizedRef {
14 
15  public:
19  ScalarizedRef(WN* const aWNp);
20 
21  ScalarizedRef(WN* const aWNp,
22  const std::string& aPostFix);
23 
24  virtual ~ScalarizedRef();
25 
26  const std::string& getName() const;
27 
28  WN* getWN() const;
29 
30  unsigned int getId() const;
31 
32  void dump(std::ostream& o) const;
33 
34  void ddump() const;
35 
41  static bool isRefTranslatableToXAIF(const WN* wn);
42 
46  static bool isRefSimple(const WN* wn);
47  static bool isRefSimpleScalar(const WN* wn);
48  static bool isRefSimpleArrayElem(const WN* wn);
49  static bool isRefSimpleArray(const WN* wn);
50  static bool isRefScalarizable(const WN* wn);
51  static bool isRefScalar(TY_IDX baseobj_ty,
52  TY_IDX refobj_ty);
53 
54  private:
55 
59  ScalarizedRef(const ScalarizedRef& x);
60 
65 
66  void Ctor(WN* wn, const char* x);
67 
68  unsigned int myId;
69 
71 
75  WN* myWNp;
76 
80  static unsigned int ourNextId;
81 
82  static const std::string ourPrefix;
83 
84  };
85 
86 }
87 
88 #endif