[Driver] Allow -e entry but reject -eentry (#72804)
commit282201dc633e164042df0ae726a804c0aad46e50
authorFangrui Song <i@maskray.me>
Mon, 27 Nov 2023 03:04:29 +0000 (26 19:04 -0800)
committerGitHub <noreply@github.com>
Mon, 27 Nov 2023 03:04:29 +0000 (27 11:04 +0800)
tree945a10e78c24447fc95afafcc092ae048e3e9397
parenta77ea94c3c2132b7d9a0f4c12a64675ba2aa6f1a
[Driver] Allow -e entry but reject -eentry (#72804)

This short option taking an argument is unfortunate.

* If a cc1-only option starts with `-e`, using it for driver will not be
  reported as an error (e.g. commit
  6cd9886c88d16d288c74846495d89f2fe84ff827).
* If another `-e` driver option is intended but a typo is made, the
  option will be recognized as a `-e`.

`gcc -export-dynamic` passes `-export-dynamic` to ld. It's not clear
whether some options behave this way.

It seems `-Wl,-eentry` and `-Wl,--entry=entry` are primarily used. There
may also be a few `gcc -e entry`, but `gcc -eentry` is extremely rare or
not used at all. Therefore, we probably should reject the Joined form of
`-e`.
clang/include/clang/Driver/Options.td
clang/test/Driver/entry.s [new file with mode: 0644]