Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 14 for NodAddr (0.13 sec)

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

    	if val != nil && !types.Identical(tmp.Type(), val.Type()) {
    		base.Fatalf("bad initial value for %L: %L", tmp, val)
    	}
    	appendWalkStmt(init, ir.NewAssignStmt(base.Pos, tmp, val))
    	return typecheck.Expr(typecheck.NodAddr(tmp)).(*ir.AddrExpr)
    }
    
    // stackTempAddr returns the expression &tmp, where tmp is a newly
    // allocated temporary variable of the given type. Statements to
    // zero-initialize tmp are appended to init.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 09 16:41:23 UTC 2024
    - 1.5K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/pkginit/initAsanGlobals.go

    				ir.NewIndexExpr(base.Pos, globals, ir.NewInt(base.Pos, int64(i))), lname(f)), val)
    			init.Append(typecheck.Stmt(r))
    		}
    		// globals[i].beg = uintptr(unsafe.Pointer(&n))
    		c = tconv(typecheck.NodAddr(n), types.Types[types.TUNSAFEPTR])
    		c = tconv(c, types.Types[types.TUINTPTR])
    		setField("beg", c, i)
    		// Assign globals[i].size.
    		g := n.(*ir.Name)
    		size := g.Type().Size()
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Aug 17 19:36:24 UTC 2023
    - 8.7K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/walk/select.go

    			dflt = cas
    			continue
    		}
    		switch n.Op() {
    		case ir.OSEND:
    			n := n.(*ir.SendStmt)
    			n.Value = typecheck.NodAddr(n.Value)
    			n.Value = typecheck.Expr(n.Value)
    
    		case ir.OSELRECV2:
    			n := n.(*ir.AssignListStmt)
    			if !ir.IsBlank(n.Lhs[0]) {
    				n.Lhs[0] = typecheck.NodAddr(n.Lhs[0])
    				n.Lhs[0] = typecheck.Expr(n.Lhs[0])
    			}
    		}
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 22 01:53:41 UTC 2023
    - 7.8K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/walk/closure.go

    	for i, value := range clos.List {
    		clos.List[i] = ir.NewStructKeyExpr(base.Pos, typ.Field(i), value)
    	}
    
    	addr := typecheck.NodAddr(clos)
    	addr.SetEsc(clo.Esc())
    
    	// Force type conversion from *struct to the func type.
    	cfn := typecheck.ConvNop(addr, clo.Type())
    
    	// non-escaping temp to use, if any.
    	if x := clo.Prealloc; x != nil {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Nov 20 15:56:08 UTC 2023
    - 6.5K bytes
    - Viewed (0)
  5. 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)
  6. 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)
  7. 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)
  8. src/cmd/compile/internal/coverage/cover.go

    	}
    	ht := types.NewArray(types.Types[types.TUINT8], 16)
    	hashx := ir.NewCompLitExpr(pos, ir.OCOMPLIT, ht, elist)
    
    	// Materalize expression corresponding to address of the meta-data symbol.
    	mdax := typecheck.NodAddr(cnames.MetaVar)
    	mdauspx := typecheck.ConvNop(mdax, types.Types[types.TUNSAFEPTR])
    
    	// Materialize expression for length.
    	lenx := ir.NewInt(base.Pos, int64(mdlen)) // untyped
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Mar 29 21:55:46 UTC 2024
    - 6K bytes
    - Viewed (0)
  9. 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)
  10. 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)
Back to top