Описание тега misra
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