mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2025-12-31 21:06:25 +00:00
Add else
This commit is contained in:
@ -30,11 +30,11 @@ def hello_again(ctx: c_void_p) -> c_int64:
|
|||||||
# if delta < 1000000000:
|
# if delta < 1000000000:
|
||||||
# print("execve called within last second")
|
# print("execve called within last second")
|
||||||
# last().delete(key)
|
# last().delete(key)
|
||||||
x = False
|
|
||||||
x = True
|
x = True
|
||||||
|
x = False
|
||||||
if x:
|
if x:
|
||||||
print("we prevailed")
|
print("we prevailed")
|
||||||
if x:
|
else:
|
||||||
print("we did not prevail")
|
print("we did not prevail")
|
||||||
ts = ktime()
|
ts = ktime()
|
||||||
last().update(key, ts)
|
last().update(key, ts)
|
||||||
@ -52,4 +52,5 @@ def hello_again(ctx: c_void_p) -> c_int64:
|
|||||||
def LICENSE() -> str:
|
def LICENSE() -> str:
|
||||||
return "GPL"
|
return "GPL"
|
||||||
|
|
||||||
|
|
||||||
compile()
|
compile()
|
||||||
|
|||||||
@ -161,11 +161,18 @@ def handle_if(func, module, builder, stmt, map_sym_tab, local_sym_tab):
|
|||||||
start = builder.block.parent
|
start = builder.block.parent
|
||||||
then_block = func.append_basic_block(name="if.then")
|
then_block = func.append_basic_block(name="if.then")
|
||||||
merge_block = func.append_basic_block(name="if.end")
|
merge_block = func.append_basic_block(name="if.end")
|
||||||
|
if stmt.orelse:
|
||||||
|
else_block = func.append_basic_block(name="if.else")
|
||||||
|
else:
|
||||||
|
else_block = None
|
||||||
|
|
||||||
cond = handle_cond(func, module, builder, stmt.test,
|
cond = handle_cond(func, module, builder, stmt.test,
|
||||||
local_sym_tab, map_sym_tab)
|
local_sym_tab, map_sym_tab)
|
||||||
|
if else_block:
|
||||||
|
builder.cbranch(cond, then_block, else_block)
|
||||||
|
else:
|
||||||
|
builder.cbranch(cond, then_block, merge_block)
|
||||||
|
|
||||||
builder.cbranch(cond, then_block, merge_block)
|
|
||||||
builder.position_at_end(then_block)
|
builder.position_at_end(then_block)
|
||||||
for s in stmt.body:
|
for s in stmt.body:
|
||||||
process_stmt(func, module, builder, s,
|
process_stmt(func, module, builder, s,
|
||||||
@ -173,6 +180,14 @@ def handle_if(func, module, builder, stmt, map_sym_tab, local_sym_tab):
|
|||||||
if not builder.block.is_terminated:
|
if not builder.block.is_terminated:
|
||||||
builder.branch(merge_block)
|
builder.branch(merge_block)
|
||||||
|
|
||||||
|
if else_block:
|
||||||
|
builder.position_at_end(else_block)
|
||||||
|
for s in stmt.orelse:
|
||||||
|
process_stmt(func, module, builder, s,
|
||||||
|
local_sym_tab, map_sym_tab, False)
|
||||||
|
if not builder.block.is_terminated:
|
||||||
|
builder.branch(merge_block)
|
||||||
|
|
||||||
builder.position_at_end(merge_block)
|
builder.position_at_end(merge_block)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user