Module Name: src Committed By: rillig Date: Tue Aug 10 07:02:00 UTC 2021
Modified Files: src/usr.bin/xlint/lint1: ops.def Log Message: lint: document the difference between FARG and PUSH To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/usr.bin/xlint/lint1/ops.def Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/xlint/lint1/ops.def diff -u src/usr.bin/xlint/lint1/ops.def:1.21 src/usr.bin/xlint/lint1/ops.def:1.22 --- src/usr.bin/xlint/lint1/ops.def:1.21 Tue Aug 10 06:31:16 2021 +++ src/usr.bin/xlint/lint1/ops.def Tue Aug 10 07:02:00 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: ops.def,v 1.21 2021/08/10 06:31:16 rillig Exp $ */ +/* $NetBSD: ops.def,v 1.22 2021/08/10 07:02:00 rillig Exp $ */ begin_ops() @@ -104,6 +104,16 @@ op( INIT, "init", 1,-,1,-,-,-,-,-,-,-,- op( CASE, "case", -,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-) op( FARG, "farg", 1,-,1,-,-,-,-,-,-,-,-,-,-,-,-,-,-,1,-,-) +/* + * Both FARG and PUSH represent function arguments. FARG is used in the + * early phase of analysis, when the node is not yet part of a function call + * expression (CALL or ICALL). Later, build_function_argument builds a + * function call expression out of the FARG nodes, where they become PUSH. + * In a function call expression, the PUSH nodes are ordered from right to + * left, that is, the function call f(17, 23) is represented as + * CALL(f, PUSH(23, PUSH(17, NULL))). + */ + end_ops() #ifndef NOPS