Resolve -Werror=self-assign.

Self assignment to inhibit warnings about unused arguments could mask other issues.  To mark unused function parameters it would be better to do something like this UNUSED macro.

/* TODO: add cases for other compilers */

See also:
https://trac.osgeo.org/gdal/ticket/5414
http://stackoverflow.com/questions/1617877/how-to-detect-llvm-and-its-version-through-define-directives