mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
require unsafe
for dereferencing
This commit is contained in:
parent
c7f3413d70
commit
fdf6682254
@ -1441,7 +1441,9 @@ fn (p mut Parser) dispatch_generic_fn_instance(f mut Fn, ti TypeInst) {
|
||||
p.cgen.tmp_line = ''
|
||||
p.cgen.cur_line = ''
|
||||
p.cgen.lines = []string
|
||||
unsafe { // TODO
|
||||
p.cur_fn = *f
|
||||
}
|
||||
for arg in f.args {
|
||||
p.register_var(arg)
|
||||
}
|
||||
|
@ -1481,6 +1481,10 @@ fn (p mut Parser) get_var_type(name string, is_ptr bool, is_deref bool) string {
|
||||
mut typ := p.var_expr(v)
|
||||
// *var
|
||||
if is_deref {
|
||||
if !p.inside_unsafe {
|
||||
p.warn('dereferencing can only be done inside an `unsafe` block')
|
||||
}
|
||||
|
||||
if !typ.contains('*') && !typ.ends_with('ptr') {
|
||||
println('name="$name", t=$v.typ')
|
||||
p.error('dereferencing requires a pointer, but got `$typ`')
|
||||
|
@ -22,8 +22,10 @@ fn C.rand() int
|
||||
* @return a value between 0 and C.RAND_MAX (inclusive)
|
||||
*/
|
||||
pub fn rand_r(seed &int) int {
|
||||
unsafe {
|
||||
mut rs := seed
|
||||
ns := ( *rs * 1103515245 + 12345 )
|
||||
*rs = ns
|
||||
return ns & 0x7fffffff
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user