# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
_abidw_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
	  '-d'|'--debug-info-dir')
	    local IFS=$'\n'
	    compopt -o dirnames
	    COMPREPLY=( $(compgen -d -- $cur) )
	    return 0
	    ;;
	  '--check-alternative-debug-info' | '--check-alternative-debug-info-base-name')
	    # TODO: perhaps limit this to ar-s and elf-s
	    local IFS=$'\n'
	    compopt -o filenames
	    COMPREPLY=( $(compgen -f -- $cur) )
	    return 0
	    ;;
	  '--out-file')
	    local IFS=$'\n'
	    compopt -o filenames
	    COMPREPLY=( $(compgen -f -- $cur) )
	    return 0
	    ;;
	esac
	case $cur in
	  -*)
	    OPTS="  --abidiff
		    --debug-info-dir
		    --check-alternative-debug-info
		    --check-alternative-debug-info-base-name
		    --help
		    --load-all-types
		    --no-architecture
		    --noout
		    --out-file
		    --no-show-locs
		    --stats"
	    COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
	    return 0
	    ;;
	esac
	local IFS=$'\n'
	compopt -o filenames
	COMPREPLY=( $(compgen -f -- $cur) )
	return 0
}
complete -F _abidw_module abidw
