mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
Document "do not use defaults in covered switch-over-enum" coding standard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164389 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
28aff84ceb
commit
67bf429a6a
@ -818,6 +818,24 @@ least one out-of-line virtual method in the class. Without this, the compiler
|
|||||||
will copy the vtable and RTTI into every ``.o`` file that ``#include``\s the
|
will copy the vtable and RTTI into every ``.o`` file that ``#include``\s the
|
||||||
header, bloating ``.o`` file sizes and increasing link times.
|
header, bloating ``.o`` file sizes and increasing link times.
|
||||||
|
|
||||||
|
Don't use default labels in fully covered switches over enumerations
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
``-Wswitch`` warns if a switch, without a default label, over an enumeration
|
||||||
|
does not cover every enumeration value. If you write a default label on a fully
|
||||||
|
covered switch over an enumeration then the ``-Wswitch`` warning won't fire
|
||||||
|
when new elements are added to that enumeration. To help avoid adding these
|
||||||
|
kinds of defaults, Clang has the warning ``-Wcovered-switch-default`` which is
|
||||||
|
off by default but turned on when building LLVM with a version of Clang that
|
||||||
|
supports the warning.
|
||||||
|
|
||||||
|
A knock-on effect of this stylistic requirement is that when building LLVM with
|
||||||
|
GCC you may get warnings related "control may reach end of non-void function"
|
||||||
|
if you return from each case of a covered switch-over-enum because GCC assumes
|
||||||
|
that the enum expression may take any representable value, not just those in
|
||||||
|
the enumeration. To suppress this warning, use ``llvm_unreachable`` after the
|
||||||
|
switch.
|
||||||
|
|
||||||
Use ``LLVM_DELETED_FUNCTION`` to mark uncallable methods
|
Use ``LLVM_DELETED_FUNCTION`` to mark uncallable methods
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user