Changes in directory llvm/tools/llvm-upgrade:
ParserInternals.h updated: 1.11 -> 1.12 --- Log message: Implement many new type features including upreferences, proper retention of structure contents, counts of packed and array types, etc. --- Diffs of the changes: (+15 -4) ParserInternals.h | 19 +++++++++++++++---- 1 files changed, 15 insertions(+), 4 deletions(-) Index: llvm/tools/llvm-upgrade/ParserInternals.h diff -u llvm/tools/llvm-upgrade/ParserInternals.h:1.11 llvm/tools/llvm-upgrade/ParserInternals.h:1.12 --- llvm/tools/llvm-upgrade/ParserInternals.h:1.11 Mon Jan 1 23:44:33 2007 +++ llvm/tools/llvm-upgrade/ParserInternals.h Wed Jan 3 17:45:17 2007 @@ -50,7 +50,7 @@ enum Types { BoolTy, SByteTy, UByteTy, ShortTy, UShortTy, IntTy, UIntTy, LongTy, ULongTy, FloatTy, DoubleTy, PointerTy, PackedTy, ArrayTy, StructTy, PackedStructTy, - OpaqueTy, VoidTy, LabelTy, FunctionTy, UnresolvedTy, NumericTy + OpaqueTy, VoidTy, LabelTy, FunctionTy, UnresolvedTy, UpRefTy }; /// This type is used to keep track of the signedness of values. Instead @@ -152,7 +152,7 @@ } bool isUnresolved() const { return oldTy == UnresolvedTy; } - bool isNumeric() const { return oldTy == NumericTy; } + bool isUpReference() const { return oldTy == UpRefTy; } bool isVoid() const { return oldTy == VoidTy; } bool isBool() const { return oldTy == BoolTy; } bool isSigned() const { @@ -233,6 +233,17 @@ return 0; } + unsigned getNumStructElements() const { + return (elements ? elements->size() : 0); + } + + TypeInfo* getElement(unsigned idx) { + if (elements) + if (idx < elements->size()) + return (*elements)[idx]; + return 0; + } + private: std::string* newTy; Types oldTy; @@ -246,11 +257,11 @@ struct ConstInfo { std::string *cnst; TypeInfo *type; - void destroy() { delete cnst; delete type; } + void destroy() { delete cnst; } }; typedef std::vector<ValueInfo> ValueList; -inline void ValueInfo::destroy() { delete val; delete type; } +inline void ValueInfo::destroy() { delete val; } #endif _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits