What are __dead2 and __unused in the source code?

From: Mehdi Khawari <iam.mehdikhawari_at_gmail.com>
Date: Tue, 21 Nov 2023 14:12:51 UTC
Hi, everyone!

I'm just learning by studying the source code of some basic tools
included in the base and I had a question.

Why is __dead2 applied to some function like usage?
static void usage(void) __dead2;

What is the reason that __unused is applied to the function argument like here:

static void
siginfo_handler(int sig __unused)
{
siginfo = 1;
}
These snippets are from /bin/chmod/chmod.c. Where can I find more
information on this?

Kind regards
Mehdi Khawari