fix unreachable 'break' and 'return' (-Wunreachable-code-*)
This commit is contained in:
parent
141c645fc4
commit
1191cc3769
5 changed files with 31 additions and 20 deletions
|
@ -419,6 +419,9 @@ if (LLAMA_ALL_WARNINGS)
|
||||||
-Wcast-qual
|
-Wcast-qual
|
||||||
-Wno-unused-function
|
-Wno-unused-function
|
||||||
)
|
)
|
||||||
|
if (CMAKE_C_COMPILER_ID MATCHES "Clang") # clang only
|
||||||
|
set(warning_flags ${warning_flags} -Wunreachable-code-break -Wunreachable-code-return)
|
||||||
|
endif()
|
||||||
set(c_flags
|
set(c_flags
|
||||||
${warning_flags}
|
${warning_flags}
|
||||||
-Wdouble-promotion
|
-Wdouble-promotion
|
||||||
|
|
9
Makefile
9
Makefile
|
@ -181,12 +181,13 @@ MK_CXXFLAGS += $(WARN_FLAGS) -Wmissing-declarations -Wmissing-noreturn
|
||||||
# TODO(cebtenzzre): remove this once PR #2632 gets merged
|
# TODO(cebtenzzre): remove this once PR #2632 gets merged
|
||||||
TTFS_CXXFLAGS = $(CXXFLAGS) -Wno-missing-declarations
|
TTFS_CXXFLAGS = $(CXXFLAGS) -Wno-missing-declarations
|
||||||
|
|
||||||
ifneq '' '$(findstring clang,$(shell $(CXX) --version))'
|
ifneq '' '$(findstring clang,$(shell $(CC) --version))'
|
||||||
# clang++ only
|
# clang only
|
||||||
MK_HOST_CXXFLAGS += -Wmissing-prototypes
|
MK_CFLAGS += -Wunreachable-code-break -Wunreachable-code-return
|
||||||
|
MK_HOST_CXXFLAGS += -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes
|
||||||
TTFS_CXXFLAGS += -Wno-missing-prototypes
|
TTFS_CXXFLAGS += -Wno-missing-prototypes
|
||||||
else
|
else
|
||||||
# g++ only
|
# gcc only
|
||||||
MK_HOST_CXXFLAGS += -Wno-format-truncation -Wno-array-bounds
|
MK_HOST_CXXFLAGS += -Wno-format-truncation -Wno-array-bounds
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -712,10 +712,9 @@ std::string gpt_random_prompt(std::mt19937 & rng) {
|
||||||
case 7: return "He";
|
case 7: return "He";
|
||||||
case 8: return "She";
|
case 8: return "She";
|
||||||
case 9: return "They";
|
case 9: return "They";
|
||||||
default: return "To";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return "The";
|
GGML_UNREACHABLE();
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
28
ggml.c
28
ggml.c
|
@ -5071,31 +5071,31 @@ int32_t ggml_get_i32_1d(const struct ggml_tensor * tensor, int i) {
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(int8_t));
|
GGML_ASSERT(tensor->nb[0] == sizeof(int8_t));
|
||||||
return ((int8_t *)(tensor->data))[i];
|
return ((int8_t *)(tensor->data))[i];
|
||||||
} break;
|
}
|
||||||
case GGML_TYPE_I16:
|
case GGML_TYPE_I16:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(int16_t));
|
GGML_ASSERT(tensor->nb[0] == sizeof(int16_t));
|
||||||
return ((int16_t *)(tensor->data))[i];
|
return ((int16_t *)(tensor->data))[i];
|
||||||
} break;
|
}
|
||||||
case GGML_TYPE_I32:
|
case GGML_TYPE_I32:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(int32_t));
|
GGML_ASSERT(tensor->nb[0] == sizeof(int32_t));
|
||||||
return ((int32_t *)(tensor->data))[i];
|
return ((int32_t *)(tensor->data))[i];
|
||||||
} break;
|
}
|
||||||
case GGML_TYPE_F16:
|
case GGML_TYPE_F16:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t));
|
GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t));
|
||||||
return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]);
|
return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]);
|
||||||
} break;
|
}
|
||||||
case GGML_TYPE_F32:
|
case GGML_TYPE_F32:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(float));
|
GGML_ASSERT(tensor->nb[0] == sizeof(float));
|
||||||
return ((float *)(tensor->data))[i];
|
return ((float *)(tensor->data))[i];
|
||||||
} break;
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(false);
|
GGML_ASSERT(false);
|
||||||
} break;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
|
@ -5141,31 +5141,31 @@ float ggml_get_f32_1d(const struct ggml_tensor * tensor, int i) {
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(int8_t));
|
GGML_ASSERT(tensor->nb[0] == sizeof(int8_t));
|
||||||
return ((int8_t *)(tensor->data))[i];
|
return ((int8_t *)(tensor->data))[i];
|
||||||
} break;
|
}
|
||||||
case GGML_TYPE_I16:
|
case GGML_TYPE_I16:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(int16_t));
|
GGML_ASSERT(tensor->nb[0] == sizeof(int16_t));
|
||||||
return ((int16_t *)(tensor->data))[i];
|
return ((int16_t *)(tensor->data))[i];
|
||||||
} break;
|
}
|
||||||
case GGML_TYPE_I32:
|
case GGML_TYPE_I32:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(int32_t));
|
GGML_ASSERT(tensor->nb[0] == sizeof(int32_t));
|
||||||
return ((int32_t *)(tensor->data))[i];
|
return ((int32_t *)(tensor->data))[i];
|
||||||
} break;
|
}
|
||||||
case GGML_TYPE_F16:
|
case GGML_TYPE_F16:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t));
|
GGML_ASSERT(tensor->nb[0] == sizeof(ggml_fp16_t));
|
||||||
return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]);
|
return GGML_FP16_TO_FP32(((ggml_fp16_t *)(tensor->data))[i]);
|
||||||
} break;
|
}
|
||||||
case GGML_TYPE_F32:
|
case GGML_TYPE_F32:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(tensor->nb[0] == sizeof(float));
|
GGML_ASSERT(tensor->nb[0] == sizeof(float));
|
||||||
return ((float *)(tensor->data))[i];
|
return ((float *)(tensor->data))[i];
|
||||||
} break;
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
GGML_ASSERT(false);
|
GGML_ASSERT(false);
|
||||||
} break;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
|
@ -18913,7 +18913,7 @@ static enum ggml_opt_result linesearch_backtracking(
|
||||||
(*step) *= width;
|
(*step) *= width;
|
||||||
}
|
}
|
||||||
|
|
||||||
return GGML_LINESEARCH_FAIL;
|
GGML_UNREACHABLE();
|
||||||
}
|
}
|
||||||
|
|
||||||
static enum ggml_opt_result ggml_opt_lbfgs(
|
static enum ggml_opt_result ggml_opt_lbfgs(
|
||||||
|
@ -19165,7 +19165,7 @@ static enum ggml_opt_result ggml_opt_lbfgs(
|
||||||
step[0] = 1.0;
|
step[0] = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return GGML_OPT_DID_NOT_CONVERGE;
|
GGML_UNREACHABLE();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type) {
|
struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type) {
|
||||||
|
|
8
ggml.h
8
ggml.h
|
@ -248,6 +248,14 @@
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
#define GGML_UNREACHABLE() GGML_ASSERT(!"statement should not be reached")
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
#define GGML_UNREACHABLE() __builtin_unreachable()
|
||||||
|
#else
|
||||||
|
#define GGML_UNREACHABLE() ((void) 0)
|
||||||
|
#endif
|
||||||
|
|
||||||
// used to copy the number of elements and stride in bytes of tensors into local variables.
|
// used to copy the number of elements and stride in bytes of tensors into local variables.
|
||||||
// main purpose is to reduce code duplication and improve readability.
|
// main purpose is to reduce code duplication and improve readability.
|
||||||
//
|
//
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue