-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathA16-0-1.cpp
More file actions
111 lines (62 loc) · 1.87 KB
/
A16-0-1.cpp
File metadata and controls
111 lines (62 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
// Rule: A16-0-1
// Source line: 27304
// Original file: A16-0-1.cpp
// $Id: A16-0-1.cpp 289436 2017-10-04 10:45:23Z michal.szczepankiewicz $
#pragma once // Non-compliant - implementation-defined feature
#ifndef HEADER_FILE_NAME
#define HEADER_FILE_NAME
// Compliant - include guard
// Compliant - include guard
#include <cstdint>
// Compliant - unconditional file inclusion
#ifdef WIN32
#include <windows.h>
#endif
// Compliant - conditional file inclusion
#ifdef WIN32
std::int32_t fn1(
std::int16_t x,
std::int16_t y) noexcept;
#endif
// Non-compliant - not a file inclusion
#if defined VERSION && VERSION > 2011L // Compliant
#include <array>
// Compliant - conditional file inclusion
#elif VERSION > 1998L // Compliant
#include <vector>
// Compliant - conditional file inclusion
#endif
// Compliant
#define MAX_ARRAY_SIZE 1024U // Non-compliant
#ifndef MAX_ARRAY_SIZE
// Non-compliant
#error "MAX_ARRAY_SIZE has not been defined" // Non-compliant
#endif
// Non-compliant
#undef MAX_ARRAY_SIZE // Non-compliant
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
// Non-compliant
#define PLUS2(X) ((X) +2) // Non-compliant - function should be used instead
#define PI 3.14159F
// Non-compliant - constexpr should be used instead
#define std ::int32_t long // Non-compliant - ’using’ should be used instead
#define STARTIF if ( // Non-compliant - language redefinition
#define HEADER "filename.h" // Non-compliant - string literal
void Fn2() noexcept
{
#ifdef __linux__ // Non-compliant - ifdef not used for file inclusion
// ...
#elif WIN32
// Non-compliant - elif not used for file inclusion
// ...
#elif __APPLE__
// Non-compliant - elif not used for file inclusion
// ...
#else
// Non-compliant - else not used for file inclusion
// ...
#endif
}
// Non-compliant - endif not used for file inclusion or include guards
#endif
// Compliant - include guard