How can I list any local branches that appear (as per `.git/config`) to be tracking remote branches that no longer exist? Remote branches are on GitHub in this case but I suspect their location has no relevance.

For example:

1. I have local branches, `a`, `b`, `c` and `d`.
2. `a` is tracking `origin/a` and `c` is tracking `origin/c`.
3. `b` and `d` are not tracking remote branches.
4. `origin/a` has been been merged back into master and was deleted during a repository clean-up; I no longer need to keep local branch `a`.
5. If local branch `a` is checked out to the working tree, running `git fetch` or `git pull` results in the error `Your configuration specifies to merge with the ref 'a' from the remote, but no such ref was fetched.`

How would I produce the list containing only `a` and any other local branches that appear to be tracking remote branches that no longer exist?

I would like to identify these so that I can delete obsolete local branches I no longer need.

The list should not include local branches `b` or `d` that are not tracking remote branches, and also not `c` that is tracking `origin/c`, which still exists.