add V_FALLTHROUGH for explicit fallthrough

This commit is contained in:
Le Tan 2017-10-08 21:16:08 +08:00
parent 01acd03a71
commit 11537972f3
2 changed files with 34 additions and 0 deletions

View File

@ -20,6 +20,32 @@ class VNotebook;
#define V_ASSERT(cond) ((!(cond)) ? qt_assert(#cond, __FILE__, __LINE__) : qt_noop()) #define V_ASSERT(cond) ((!(cond)) ? qt_assert(#cond, __FILE__, __LINE__) : qt_noop())
#endif #endif
// Thanks to CGAL/cgal.
#ifndef __has_attribute
#define __has_attribute(x) 0 // Compatibility with non-clang compilers.
#endif
#ifndef __has_cpp_attribute
#define __has_cpp_attribute(x) 0 // Compatibility with non-supporting compilers.
#endif
// The fallthrough attribute.
// See for clang:
// http://clang.llvm.org/docs/AttributeReference.html#statement-attributes
// See for gcc:
// https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
#if __has_cpp_attribute(fallthrough)
# define V_FALLTHROUGH [[fallthrough]]
#elif __has_cpp_attribute(gnu::fallthrough)
# define V_FALLTHROUGH [[gnu::fallthrough]]
#elif __has_cpp_attribute(clang::fallthrough)
# define V_FALLTHROUGH [[clang::fallthrough]]
#elif __has_attribute(fallthrough) && ! __clang__
# define V_FALLTHROUGH __attribute__ ((fallthrough))
#else
# define V_FALLTHROUGH while(false){}
#endif
enum class MessageBoxType enum class MessageBoxType
{ {
Normal = 0, Normal = 0,

View File

@ -1115,6 +1115,8 @@ bool VVim::handleKeyPressEvent(int key, int modifiers, int *p_autoIndentPos)
} else { } else {
break; break;
} }
V_FALLTHROUGH;
} }
case Qt::Key_PageUp: case Qt::Key_PageUp:
@ -1381,6 +1383,8 @@ bool VVim::handleKeyPressEvent(int key, int modifiers, int *p_autoIndentPos)
} else { } else {
break; break;
} }
V_FALLTHROUGH;
} }
case Qt::Key_Escape: case Qt::Key_Escape:
@ -3481,6 +3485,8 @@ void VVim::processDeleteAction(QList<Token> &p_tokens)
// Fall through. // Fall through.
mayCrossBlock = true; mayCrossBlock = true;
V_FALLTHROUGH;
case Range::WordAround: case Range::WordAround:
// Fall through. // Fall through.
case Range::WordInner: case Range::WordInner:
@ -3712,6 +3718,8 @@ void VVim::processCopyAction(QList<Token> &p_tokens)
// Fall through. // Fall through.
mayCrossBlock = true; mayCrossBlock = true;
V_FALLTHROUGH;
case Range::WordAround: case Range::WordAround:
// Fall through. // Fall through.
case Range::WordInner: case Range::WordInner: