# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
_abidiff_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
	  '--d1'|'--d2'|'--debug-info-dir1'|'--debug-info-dir2')
	    local IFS=$'\n'
	    compopt -o dirnames
	    COMPREPLY=( $(compgen -d -- $cur) )
	    return 0
	    ;;
	  '--suppressions'|'--suppr')
	    local IFS=$'\n'
	    compopt -o filenames
	    COMPREPLY=( $(compgen -f -- $cur) )
	    return 0
	    ;;
	  '--drop' | '--drop-fn' | '--drop-var' | '--keep' | '--keep-fn' | '--keep-var')
	  #'--{drop,keep}{,-fn,-var}')
	    COMPREPLY=( $(compgen -W "string" -- $cur) )
	    return 0
	    ;;
	esac
	case $cur in
	  -*)
	    OPTS="  --added-fns
		    --added-vars
		    --changed-fns
		    --changed-vars
		    --d1
		    --d2
		    --debug-info-dir1
		    --debug-info-dir2
		    --deleted-fns
		    --deleted-vars
		    --drop
		    --drop-fn
		    --drop-var
		    --dump-diff-tree
		    --harmless
		    --help
		    --keep
		    --keep-fn
		    --keep-var
		    --no-harmful
		    --no-linkage-name
		    --no-redundant
		    --no-unreferenced-symbols
		    --redundant
		    --no-show-locs
		    --stat
		    --symtabs"
	    COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
	    return 0
	    ;;
	esac
	local IFS=$'\n'
	compopt -o filenames
	COMPREPLY=( $(compgen -f -- $cur) )
	return 0
}
complete -F _abidiff_module abidiff
