Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 9 of 9 for NodAddr (0.22 sec)

  1. src/cmd/compile/internal/walk/range.go

    		init = append(init, mkcallstmt1(fn, reflectdata.RangeMapRType(base.Pos, nrange), ha, typecheck.NodAddr(hit)))
    		nfor.Cond = ir.NewBinaryExpr(base.Pos, ir.ONE, ir.NewSelectorExpr(base.Pos, ir.ODOT, hit, keysym), typecheck.NodNil())
    
    		fn = typecheck.LookupRuntime("mapiternext", th)
    		nfor.Post = mkcallstmt1(fn, typecheck.NodAddr(hit))
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Sep 20 14:52:33 UTC 2023
    - 17.6K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/walk/assign.go

    	case ir.ORECV:
    		// x = <-c; as.Left is x, as.Right.Left is c.
    		// order.stmt made sure x is addressable.
    		recv := as.Y.(*ir.UnaryExpr)
    		recv.X = walkExpr(recv.X, init)
    
    		n1 := typecheck.NodAddr(as.X)
    		r := recv.X // the channel
    		return mkcall1(chanfn("chanrecv1", 2, r.Type()), nil, init, r, n1)
    
    	case ir.OAPPEND:
    		// x = append(...)
    		call := as.Y.(*ir.CallExpr)
    		if call.Type().Elem().NotInHeap() {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 08 17:09:06 UTC 2024
    - 20.3K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/walk/convert.go

    		init.Append(typecheck.Stmt(ir.NewAssignStmt(base.Pos, value, n)))
    	}
    	if value != nil {
    		// The interface data word is &value.
    		return typecheck.Expr(typecheck.NodAddr(value))
    	}
    
    	// Time to do an allocation. We'll call into the runtime for that.
    	fnname, argType, needsaddr := dataWordFuncName(fromType)
    	var fn *ir.Name
    
    	var args []ir.Node
    	if needsaddr {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 09 17:28:22 UTC 2023
    - 18.2K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/walk/compare.go

    		// is handled by walkCompare.
    		fn, needsLength := reflectdata.EqFor(t)
    		call := ir.NewCallExpr(base.Pos, ir.OCALL, fn, nil)
    		call.Args.Append(typecheck.NodAddr(cmpl))
    		call.Args.Append(typecheck.NodAddr(cmpr))
    		if needsLength {
    			call.Args.Append(ir.NewInt(base.Pos, t.Size()))
    		}
    		res := ir.Node(call)
    		if n.Op() != ir.OEQ {
    			res = ir.NewUnaryExpr(base.Pos, ir.ONOT, res)
    		}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 24 21:55:14 UTC 2023
    - 16.2K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/typecheck/subr.go

    	for i, orig := range origs {
    		p := types.NewField(orig.Pos, orig.Sym, orig.Type)
    		p.SetIsDDD(orig.IsDDD())
    		res[i] = p
    	}
    	return res
    }
    
    // NodAddr returns a node representing &n at base.Pos.
    func NodAddr(n ir.Node) *ir.AddrExpr {
    	return NodAddrAt(base.Pos, n)
    }
    
    // NodAddrAt returns a node representing &n at position pos.
    func NodAddrAt(pos src.XPos, n ir.Node) *ir.AddrExpr {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 05 19:45:58 UTC 2023
    - 20.2K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/walk/expr.go

    func mapKeyArg(fast int, n, key ir.Node, assigned bool) ir.Node {
    	if fast == mapslow {
    		// standard version takes key by reference.
    		// orderState.expr made sure key is addressable.
    		return typecheck.NodAddr(key)
    	}
    	if assigned {
    		// mapassign does distinguish pointer vs. integer key.
    		return key
    	}
    	// mapaccess and mapdelete don't distinguish pointer vs. integer key.
    	switch fast {
    	case mapfast32ptr:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 04 17:34:01 UTC 2024
    - 27.6K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/typecheck/expr.go

    		return n
    	}
    	if l.Type().IsArray() {
    		if !ir.IsAddressable(n.X) {
    			base.Errorf("invalid operation %v (slice of unaddressable value)", n)
    			n.SetType(nil)
    			return n
    		}
    
    		addr := NodAddr(n.X)
    		addr.SetImplicit(true)
    		n.X = Expr(addr)
    		l = n.X
    	}
    	t := l.Type()
    	var tp *types.Type
    	if t.IsString() {
    		if hasmax {
    			base.Errorf("invalid operation %v (3-index slice of string)", n)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 04 14:29:45 UTC 2024
    - 23.1K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/typecheck/typecheck.go

    		types.CalcSize(tt)
    		rcvr := f2.Type.Recv().Type
    		if !types.Identical(rcvr, tt) {
    			if rcvr.IsPtr() && types.Identical(rcvr.Elem(), tt) {
    				checklvalue(n.X, "call pointer method on")
    				addr := NodAddr(n.X)
    				addr.SetImplicit(true)
    				n.X = typecheck(addr, ctxType|ctxExpr)
    			} else if tt.IsPtr() && (!rcvr.IsPtr() || rcvr.IsPtr() && rcvr.Elem().NotInHeap()) && types.Identical(tt.Elem(), rcvr) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Mar 20 19:08:34 UTC 2024
    - 30.5K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/walk/order.go

    			base.Fatalf("mapKeyTemp: key type is not sufficiently aligned, kt=%v nt=%v", kt, nt)
    		}
    		tmp := o.newTemp(kt, true)
    		// *(*nt)(&tmp) = n
    		var e ir.Node = typecheck.NodAddr(tmp)
    		e = ir.NewConvExpr(pos, ir.OCONVNOP, nt.PtrTo(), e)
    		e = ir.NewStarExpr(pos, e)
    		o.append(ir.NewAssignStmt(pos, e, n))
    		return tmp
    	}
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Mar 08 02:00:33 UTC 2024
    - 42.7K bytes
    - Viewed (0)
Back to top