| 1751 | } |
| 1752 | |
| 1753 | static bool isLifetimeBorrowed(const ValueType *vt, const ValueType *vtParent) |
| 1754 | { |
| 1755 | if (!vtParent) |
| 1756 | return false; |
| 1757 | if (!vt) |
| 1758 | return false; |
| 1759 | if (vt->pointer > 0 && vt->pointer == vtParent->pointer) |
| 1760 | return true; |
| 1761 | if (vtParent->container && vtParent->container->view) |
| 1762 | return true; |
| 1763 | if (vt->type != ValueType::UNKNOWN_TYPE && vtParent->type != ValueType::UNKNOWN_TYPE && vtParent->container == vt->container) { |
| 1764 | if (vtParent->pointer > vt->pointer) |
| 1765 | return true; |
| 1766 | if (vtParent->pointer < vt->pointer && vtParent->isIntegral()) |
| 1767 | return true; |
| 1768 | ValueType temp = *vtParent; |
| 1769 | if ((temp.constness & 1) && !(vt->constness & 1)) // allow assignment to const/volatile |
| 1770 | temp.constness &= ~1; |
| 1771 | if ((temp.volatileness & 1) && !(vt->volatileness & 1)) |
| 1772 | temp.volatileness &= ~1; |
| 1773 | if (temp.str() == vt->str()) |
| 1774 | return true; |
| 1775 | } |
| 1776 | |
| 1777 | return false; |
| 1778 | } |
| 1779 | |
| 1780 | static const Token* skipCVRefs(const Token* tok, const Token* endTok) |
| 1781 | { |
no test coverage detected