At least one argument is required. All arguments are simple keywords, the permitted values being icf, noicf, noref, nowin98, ref and win98, except that icf allows some qualification. Anything else is a fatal error (LNK1117).

Two extensions are permitted to the syntax for the icf keyword. One is that the last feature may have the form


where it is a fatal error (LNK1117) if iterations is not a number. After an argument in this form, subsequent arguments cause warning LNK4056 and are ignored.

The other syntax extension is that the argument immediately after an icf keyword need not be one of the permitted keywords. If it evaluates as a number, then it is instead the iterations. It is also syntactically valid for the next argument to be empty, apparently to allow that iterations be defaulted. However, the present coding for this case sets iterations from a local variable that is formally uninitialised.

The /opt option is for the command line only. It is not valid as a directive in an object file.