Lines Matching refs:cp

1789 dt_node_op1(int op, dt_node_t *cp)
1793 if (cp->dn_kind == DT_NODE_INT) {
1801 cp->dn_value = -cp->dn_value;
1802 if (!(cp->dn_flags & DT_NF_SIGNED)) {
1803 cp->dn_value &= ~0ULL >>
1804 (64 - dt_node_type_size(cp) * NBBY);
1808 return (cp);
1810 cp->dn_value = ~cp->dn_value;
1811 return (cp);
1813 cp->dn_value = !cp->dn_value;
1814 return (cp);
1820 * transform 'cp' into an integer constant in the node construction
1824 (cp->dn_kind == DT_NODE_STRING || cp->dn_kind == DT_NODE_TYPE)) {
1826 size_t size = dt_node_type_size(cp);
1833 dt_node_type_assign(cp, dtp->dt_ddefs->dm_ctfp,
1836 cp->dn_kind = DT_NODE_INT;
1837 cp->dn_op = DT_TOK_INT;
1838 cp->dn_value = size;
1840 return (cp);
1846 dnp->dn_child = cp;
2845 dt_node_t *cp = dnp->dn_child;
2866 if (cp->dn_kind == DT_NODE_IDENT && (idflags & DT_IDFLG_MOD))
2867 dt_xcook_ident(cp, dtp->dt_globals, DT_IDENT_SCALAR, B_TRUE);
2869 cp = dnp->dn_child = dt_node_cook(cp, 0); /* don't set idflags yet */
2871 if (cp->dn_kind == DT_NODE_VAR && dt_ident_unref(cp->dn_ident)) {
2875 dt_ident_type_assign(cp->dn_ident, dtt.dtt_ctfp, dtt.dtt_type);
2876 dt_node_type_assign(cp, dtt.dtt_ctfp, dtt.dtt_type);
2879 if (cp->dn_kind == DT_NODE_VAR)
2880 cp->dn_ident->di_flags |= idflags;
2888 if ((idp = dt_node_resolve(cp, DT_IDENT_XLPTR)) != NULL) {
2897 type = ctf_type_resolve(cp->dn_ctfp, cp->dn_type);
2898 kind = ctf_type_kind(cp->dn_ctfp, type);
2901 if (ctf_array_info(cp->dn_ctfp, type, &r) != 0) {
2902 dtp->dt_ctferr = ctf_errno(cp->dn_ctfp);
2907 type = ctf_type_reference(cp->dn_ctfp, type);
2913 dt_node_type_assign(dnp, cp->dn_ctfp, type);
2914 base = ctf_type_resolve(cp->dn_ctfp, type);
2915 kind = ctf_type_kind(cp->dn_ctfp, base);
2917 if (kind == CTF_K_INTEGER && ctf_type_encoding(cp->dn_ctfp,
2938 if ((cp->dn_flags & DT_NF_WRITABLE) ||
2939 (cp->dn_kind == DT_NODE_OP2 && cp->dn_op == DT_TOK_ADD &&
2940 (cp->dn_left->dn_flags & DT_NF_WRITABLE)))
2943 if ((cp->dn_flags & DT_NF_USERLAND) &&
2950 if (!dt_node_is_arith(cp)) {
2954 dt_node_type_propagate(cp, dnp); /* see K&R[A7.4.4-6] */
2958 if (!dt_node_is_integer(cp)) {
2962 dt_node_type_propagate(cp, dnp); /* see K&R[A7.4.4-6] */
2966 if (!dt_node_is_scalar(cp)) {
2974 if (cp->dn_kind == DT_NODE_VAR || cp->dn_kind == DT_NODE_AGG) {
2979 if (dt_node_is_dynamic(cp)) {
2984 if (!(cp->dn_flags & DT_NF_LVALUE)) {
2989 if (cp->dn_flags & DT_NF_BITFIELD) {
2995 dtt.dtt_ctfp = cp->dn_ctfp;
2996 dtt.dtt_type = cp->dn_type;
3000 dt_node_type_name(cp, n, sizeof (n)));
3005 if (cp->dn_flags & DT_NF_USERLAND)
3010 if (cp->dn_flags & DT_NF_BITFIELD) {
3015 if (dt_node_sizeof(cp) == 0) {
3025 if (!dt_node_is_scalar(cp) && !dt_node_is_pointer(cp) &&
3026 !dt_node_is_strcompat(cp)) {
3029 dt_node_type_name(cp, n, sizeof (n)));
3038 if (dt_node_is_scalar(cp) == 0) {
3043 if (dt_node_is_vfptr(cp)) {
3048 if (!(cp->dn_flags & DT_NF_LVALUE)) {
3053 if (!(cp->dn_flags & DT_NF_WRITABLE)) {
3058 dt_node_type_propagate(cp, dnp); /* see K&R[A7.4.1] */
3065 dt_node_attr_assign(dnp, cp->dn_attr);