MISRA (первоначально аббревиатура Motor Industry Software Reliability Association) - это организация, которая опубликовала рекомендации по кодированию под названием MISRA-C и MISRA-C++. Каждый документ представляет собой набор правил, направленных на создание более безопасного подмножества соответствующего языка.
3 ответа

Нарушение правила 11.3 MISRA C-2012 при попытке выполнить приведение типа от указателя к типу int

Я пытаюсь избавиться от правила 11.3 из своего кода. Образец кода: static int32_t do_test(const char *cp) { const char *c = cp; const int32_t *x; x = (const int32_t *)cp; return *x; } Я хочу, чтобы значения *c и *x были одинаковыми. Даже если код ко…
03 дек '17 в 10:51
1 ответ

Почему у меня должен быть конструктор копирования, если есть конструктор шаблона с единственным параметром, который является универсальным?

Правило MISRA 14-5-2 гласит: Конструктор копирования должен быть объявлен, когда существует конструктор шаблона с единственным параметром, который является универсальным параметром. Я не могу найти ничего, что объясняет мне достаточно простыми слова…
01 ноя '18 в 05:41
5 ответов

Есть ли способ сделать перечисление неподписанным в стандарте C90 (соответствует MISRA-C 2004)

Я пытаюсь найти способ сделать перечисление "без знака". enum{ x1 = 0, x2, x3 }; uint8_t = x2; /* <--- PC-LINT MISRA-C 2004 will complain about mixing signed and unsigned here */ Конечно, я могу добавить Typecast, чтобы избавиться от ошибки, кото…
31 янв '13 в 21:52
2 ответа

PC-Lint Misra 10.1 Ошибка в логическом выражении

PC-Lint версии 9.00L смотрит на этот код: typedef unsigned char boolean_t; //This is actually in a system header file. ... /* The rest is in the .c file I'm working on. */ boolean_t booleanVal ... uint8_t maskedVal; maskedVal = 0; //real code has th…
15 фев '18 в 23:29
2 ответа

Покрывает ли FxCop в C# MISRA?

Для программ, написанных на.net/C#, охватывает ли FxCop (и эквиваленты Roslyn) соответствующие правила в MISRA? Кто-нибудь прошел и пометил их? Или для.NET существует стандарт соответствия, аналогичный MISRA?
22 мар '16 в 07:51
3 ответа

line_c |= 064; /* неверно устанавливает биты 2,4 и 5 */ .. Указание Misra C. Как это произошло?

line_c=0; line_c |= 064; /* wrongly sets bits 2,4 and 5 */ line_c |= 64; /* rightly sets bit 6 */ Мишра С директива. Как это произошло? Пожалуйста, объясни.
09 янв '16 в 20:14
3 ответа

C/C++ значение по умолчанию / значение, присвоенное переменной, никогда не используется

Мне нравится всегда инициализировать локальные переменные, например int32_t result = 0; Я думал, что это хороший стиль программирования, потому что "результат" никогда не может быть инициализирован, независимо от того, установлены ли следующие if-ко…
16 май '18 в 13:41
4 ответа

Могу ли я потребовать, чтобы возвращаемое значение было указателем на константу

Скажем, у меня есть два "модуля". Например, уровень аппаратного интерфейса порта RS-232 и уровень над ним, чтобы сделать его более абстрактным. У меня есть приемный буфер, как это: U8BIT myBuffer[MAX], U8BIT typedeffed: typedef unsigned char Однако …
28 июн '12 в 13:13
1 ответ

Как написать функцию memcpy, полностью совместимую с MISRA:2012?

Я написал это memcpy функция, но мне все еще нужно отключить правила 11.5 и 11.8. Есть ли решение для полной совместимости с MISRA:2012? #pragma cstat_suppress="MISRAC2012-Rule-21.6" // Uses of stdio.h were found. #include <stdio.h> #include &…
10 окт '17 в 11:38
3 ответа

Логический операнд Misra-C 2012, правило 10.1, который используется в случае, когда выражение имеет логический тип

Следующие строки генерируют нарушения Мисры. unsigned int u16_a; unsigned char u8_b; if (u16_a && u8_b) // Generates Misra-C 10.1 violation. (u16_a) ? 2 : 1 //Generates Misra-C 10.1 violation. Нарушение говорит, что операнд имеет существенны…
23 май '17 в 10:00
1 ответ

Шаблон статической функции и MISRA C++

Следующий шаблон функции со специализациями должен использоваться в том же .cpp только файл, поэтому я хотел бы сделать это static, Следующий код компилируется (без предупреждений) с использованием MS Visual C++ 2008 и GCC 4.8.1 и работает как задум…
11 сен '14 в 12:59
2 ответа

Соответствие MISRA C для арифметического сложения

Учитывая переменные a, b, а также c: uint32_t a; uint16_t b, c; Согласно стандарту MISRA-C 2012, выражение a+b+c соответствует в то время как b+c+a не соответствует. Зачем?
05 авг '15 в 17:11
1 ответ

Использование DVCS при разработке программного обеспечения высокой целостности

Кто-нибудь имел опыт использования инструментов распределенного контроля версий, таких как Mercurial, Git, Bazaar и т. Д., При разработке проектов для использования в сфере программного обеспечения высокой целостности, я думаю, если вам нужно разраб…
08 мар '17 в 20:10
1 ответ

MISRA-C++:2008[8-4-3]: возврат по всему пути выхода в функции

При тестировании моего кода (статический анализ), чтобы увидеть, уважаю ли я misra C++ 2008, я получаю следующую ошибку Функция не возвращает значение на всех путях. Функция выглядит так int* Dosomething(string v) { int* retvalue = NULL; if( 0 == ex…
06 дек '13 в 13:25
1 ответ

Почему я должен приводить элемент enum при назначении ему того же типа переменной enum в C?

У меня есть следующее: typedef enum { FLS_PROG_SUCCESS, FLS_PROG_FAIL, FLS_ERASE_SUCCESS2U, FLS_ERASE_FAIL, FLS_READ_SUCCESS, FLS_READ_FAIL, FLS_FORMAT_SUCCESS, FLS_FORMAT_FAIL }FLS_JobResult_t; void Foo(void) { FLS_JobResult_t ProgramStatus; /* The…
30 июл '15 в 16:50
2 ответа

Соответствует ли этот фрагмент кода MISRA C?

Я должен отправить UDP-пакеты в локальной сети автомобиля. Пакет UDP состоит из 5 полей: field_1: 4 bytes uint32_t field_2: 1 byte uint8_t field_3: 1 byte uint8_t field_3: 2 bytes uint16_t field_4: 20 bytes 5*float Интересно, если выполнение memcpy …
30 июл '18 в 15:02
4 ответа

MISRA C 2012 Правило 16.1 Все операторы переключения должны быть правильно сформированы

Я пытаюсь избавиться от нарушения правил 16.1 из моего кода. Образец кода: switch (cmd) { case ADD: result = add(op1, op2); break; case SUB: if (!flag) { // Problem here! break; } //Fallthrough case ALU_CMD_SUB: result = sub(op1, op2); . . . . . . b…
27 фев '18 в 05:27
3 ответа

Чистая виртуальная функция, перекрывающая виртуальную функцию

Предположим, приведен следующий код. class A { public: virtual void someMethod() { std::cout << "class A" << std::endl; } }; class B : public A { public: ... virtual void someMethod() = 0; ... }; Учебный класс B Переопределение someMetho…
28 сен '13 в 10:20
2 ответа

MISRA 2004: 10.1/R предупреждение

S32 pLeftX; pLeftX = pos.x - 1; //Getting a Misra 2004: 10.1/R warning for this. Вот, pos.x имеет тип int.
14 июн '13 в 12:49
5 ответов

C/C++ операторы условного возврата

Я работаю над встроенной программой, и в некоторых случаях, если условие не подразумевается, я хотел бы как можно быстрее вернуться из функции. если у меня есть следующий код, и я занимаюсь встроенным программированием: foo() { if (a < b) { retur…
18 июн '13 в 19:29