Por que `clang-format --version` retorna 1

Por que `clang-format --version` retorna 1

Estou trabalhando em um RHEL7 e acabei de instalar clang: sudo yum install clang.

Então executo o comando clang-format --versione a saída está abaixo:

me@localhost:~$ clang-format --version
LLVM (http://llvm.org/):
  LLVM version 3.4.2
  Optimized build.
  Built May 10 2018 (10:48:27).
  Default target: x86_64-redhat-linux-gnu
  Host CPU: x86-64

me@localhost:~$ echo $?
1

Como você pode ver, clang-format --versionparece funcionar sem nenhum erro, mas echo $?me mostra um arquivo 1.

O que há de errado com este comando?

Acabei de fazer a mesma coisa em um sistema Ubuntu e esse erro não existe.

A saída de type -a clang-format:

clang-format is /usr/bin/clang-format
clang-format is /bin/clang-format

A saída de file "$(command -v clang-format)":

/usr/bin/clang-format: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=899595580dbae12ee1ae6eb9feb8a19aa6d51f49, stripped

Responder1

Este problema pode ser reproduzido com versões mais antigas do formato clang disponíveis para instalação na yumimagem sglim2/centos7do docker, por exemplo. clang-format --versionfoi modificado para retornar 0 em este commit:

CommandLine: Sair com sucesso para -version e -help

As ferramentas que usam a biblioteca CommandLine atualmente apresentam um erro quando invocadas com -version ou -help. Isso é incomum e fora do padrão, então iremos corrigi-los para que saiam com sucesso.

Não espero que alguém confie no comportamento atual, portanto esta deve ser uma mudança bastante segura.

llvm-svn: 202530

informação relacionada