
macros.c: (in macro needparen)
macros.c:7:26: Macro parameter used without parentheses: a
macros.c:7:30: Macro parameter used without parentheses: b
macros.c: (in macro needuse)
macros.c:8:21: Macro parameter b not used
   macros.lcl:6:1: Specification of b
macros.c: (in macro multuse)
macros.c:9:18: Macro parameter a used more than once
macros.c: (in macro badassign)
macros.c:10:26: Assignment to macro parameter: a
macros.c:11: Macro badassign already defined
   macros.c:10: Previous definition of badassign
macros.c: (in macro badassign)
macros.c:11:26: Operand of ++ is macro parameter (non-functional): (a)++
macros.c:11:35: Operand of ++ is macro parameter (non-functional): ++(b)
macros.c: (in macro predbad)
macros.c:15:20: Macro parameter b used in true clause, but not in false clause
macros.c: (in macro predbad2)
macros.c:16:19: Macro parameter a used more than once
macros.c:16:22: Macro parameter b used more than once
macros.c: (in macro badval)
macros.c:22:23: Function badval specified to return int, implemented as macro
                   having type bool: ((a) == (b))
   macros.lcl:14: Specification of badval
macros.c: (in macro badconst)
macros.c:23:20: Constant badconst specified as bool, but defined as int: 5
   macros.lcl:18:15: Specification of badconst
macros.c:25:21: Constant worseconst implemented as parameterized macro
   macros.lcl:20:14: Specification of worseconst
macros.c:27: Variable var implemented by a macro
   macros.lcl:22:5: Specification of var
macros.c:28: Variable var2 implemented as parameterized macro
   macros.lcl:23:5: Specification of var2
macros.c: (in macro var2)
macros.c:28:15: Macro parameter x used more than once

Finished checking --- 17 code warnings, as expected

macros.c:3: Parameterized macro has no prototype or specification: mustard 
macros.c: (in macro mustard)
macros.c:3:30: Macro parameter used without parentheses: b
macros.c:3:18: Macro parameter a used more than once
macros.c:3:34: Macro parameter used without parentheses: a
macros.c:4: Parameterized macro has no prototype or specification: ketchup 
macros.c:6: Parameterized macro has no prototype or specification: ok 
macros.c:7: Parameterized macro has no prototype or specification: needparen 
macros.c: (in macro needparen)
macros.c:7:26: Macro parameter used without parentheses: a
macros.c:7:30: Macro parameter used without parentheses: b
macros.c:8: Parameterized macro has no prototype or specification: needuse 
macros.c: (in macro needuse)
macros.c:8:21: Macro parameter b not used
macros.c:9: Parameterized macro has no prototype or specification: multuse 
macros.c: (in macro multuse)
macros.c:9:18: Macro parameter a used more than once
macros.c:10: Parameterized macro has no prototype or specification: badassign 
macros.c: (in macro badassign)
macros.c:10:26: Assignment to macro parameter: a
macros.c:11: Macro badassign already defined
   macros.c:10: Previous definition of badassign
macros.c: (in macro badassign)
macros.c:11:26: Operand of ++ is macro parameter (non-functional): (a)++
macros.c:11:35: Operand of ++ is macro parameter (non-functional): ++(b)
macros.c:14: Parameterized macro has no prototype or specification: predok 
macros.c:15: Parameterized macro has no prototype or specification: predbad 
macros.c: (in macro predbad)
macros.c:15:20: Macro parameter b used in true clause, but not in false clause
macros.c:16: Parameterized macro has no prototype or specification: predbad2 
macros.c: (in macro predbad2)
macros.c:16:19: Macro parameter a used more than once
macros.c:16:22: Macro parameter b used more than once
macros.c:18: Parameterized macro has no prototype or specification: badorder 
macros.c:19: Parameterized macro has no prototype or specification: okorder 
macros.c:20: Parameterized macro has no prototype or specification: okorder2 
macros.c:22: Parameterized macro has no prototype or specification: badval 
macros.c:23: Macro constant badconst not declared
macros.c:24: Macro constant goodconst not declared
macros.c:25: Parameterized macro has no prototype or specification: worseconst 
macros.c:27: Macro constant var not declared
macros.c:28: Parameterized macro has no prototype or specification: var2 
macros.c: (in macro var2)
macros.c:28:15: Macro parameter x used more than once

Finished checking --- 34 code warnings, as expected

macros.c:3: Parameterized macro has no prototype or specification: mustard 
macros.c: (in macro mustard)
macros.c:3:30: Macro parameter used without parentheses: b
macros.c:3:18: Macro parameter a used more than once
macros.c:3:34: Macro parameter used without parentheses: a
macros.c:4: Parameterized macro has no prototype or specification: ketchup 
macros.c:6: Parameterized macro has no prototype or specification: ok 
macros.c:7: Parameterized macro has no prototype or specification: needparen 
macros.c: (in macro needparen)
macros.c:7:26: Macro parameter used without parentheses: a
macros.c:7:30: Macro parameter used without parentheses: b
macros.c:8: Parameterized macro has no prototype or specification: needuse 
macros.c: (in macro needuse)
macros.c:8:21: Macro parameter b not used
macros.c:9: Parameterized macro has no prototype or specification: multuse 
macros.c: (in macro multuse)
macros.c:9:18: Macro parameter a used more than once
macros.c:10: Parameterized macro has no prototype or specification: badassign 
macros.c: (in macro badassign)
macros.c:10:26: Assignment to macro parameter: a
macros.c:11: Macro badassign already defined
   macros.c:10: Previous definition of badassign
macros.c: (in macro badassign)
macros.c:11:26: Operand of ++ is macro parameter (non-functional): (a)++
macros.c:11:35: Operand of ++ is macro parameter (non-functional): ++(b)
macros.c:14: Parameterized macro has no prototype or specification: predok 
macros.c:15: Parameterized macro has no prototype or specification: predbad 
macros.c: (in macro predbad)
macros.c:15:20: Macro parameter b used in true clause, but not in false clause
macros.c:16: Parameterized macro has no prototype or specification: predbad2 
macros.c: (in macro predbad2)
macros.c:16:19: Macro parameter a used more than once
macros.c:16:22: Macro parameter b used more than once
macros.c:18: Parameterized macro has no prototype or specification: badorder 
macros.c:19: Parameterized macro has no prototype or specification: okorder 
macros.c:20: Parameterized macro has no prototype or specification: okorder2 
macros.c:22: Parameterized macro has no prototype or specification: badval 
macros.c:25: Parameterized macro has no prototype or specification: worseconst 
macros.c:28: Parameterized macro has no prototype or specification: var2 
macros.c: (in macro var2)
macros.c:28:15: Macro parameter x used more than once

Finished checking --- 31 code warnings, as expected
