~widelands-dev/widelands/bug-1808169-disable-focus

« back to all changes in this revision

Viewing changes to cmake/codecheck/rules/const_qualifier_for_parameter_passed_by_value

  • Committer: qcs
  • Date: 2010-02-05 01:13:20 UTC
  • Revision ID: git-v1:136d6c48811c97ec1f98301726134b0de66f868c
Manual merge of cmake-migration branch to trunk

git-svn-id: https://widelands.svn.sourceforge.net/svnroot/widelands/trunk@5030 37b2a8de-5219-0410-9f54-a31bc463ab9c

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python 
 
2
 
 
3
"""
 
4
This catches const qualifiers for parameters passed by value to functions, in
 
5
function declarations. Such qualifiers should only be in the definitions. It
 
6
will miss:
 
7
* declarations with complex type names (template types) or default value
 
8
* assignments, functions with things like __attribute__ and pointers with const
 
9
* qualifiers
 
10
"""
 
11
 
 
12
error_msg = "'const' for a literal parameter makes no sense. Remove the const."
 
13
 
 
14
regexp = r"""^\s*(?:(static|virtual) +)?(?:const +)?(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*(?: +const)?(?: *(?:\*(?: *const)?|&))* +[_a-zA-Z][_a-zA-Z0-9]* *\((?:(const +)?(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*(?: +const)?(?: *(?:\*(?: *const)?|&))*(?: +[_a-zA-Z][_a-zA-Z0-9]*)?, *)*(?:const +(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*|(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]* +const)(?: +[_a-zA-Z][_a-zA-Z0-9]*)?(?:, *(?:const +)?(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*(?: +const)?(?: *(?:\*(?: *const)?|&))*)*(?: +[_a-zA-Z][_a-zA-Z0-9]*)?(?:\)(?: *const)?(?: throw *\(.*\))?;|,$)"""
 
15
 
 
16
forbidden = [
 
17
    "   void truncate(int32_t const count);",
 
18
    "void func(const Some_Type,",
 
19
    "void func(const Some_Type);",
 
20
    "void func(const Some_Type) const;",
 
21
    "void func(const Some_Type) const throw (whatever);",
 
22
    "void func(const Some_Type abc,",
 
23
    "void func(const Some_Type abc);",
 
24
    "void func(const Some_Type abc) const;",
 
25
    "void func(std::string * const & * foo, const Some_Type,",
 
26
    "void func(std::string * const & * foo, const Some_Type);",
 
27
    "void func(std::string * const & * foo, const Some_Type) const;",
 
28
    "void func(std::string * const & * foo, const Some_Type) const throw (whatever);",
 
29
    "void func(std::string * const & * foo, const Some_Type abc,",
 
30
    "void func(std::string * const & * foo, const Some_Type abc);",
 
31
    "void func(std::string * const & * foo, const Some_Type abc) const;",
 
32
    "void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo,",
 
33
    "void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo);",
 
34
    "void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo) const;",
 
35
    "void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo) const throw (whatever);",
 
36
    "void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo,",
 
37
    "void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo);",
 
38
    "void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo) const;",
 
39
    "void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo,",
 
40
    "void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo);",
 
41
    "void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo) const;",
 
42
    "void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo) const throw (whatever);",
 
43
    "void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo,",
 
44
    "void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo);",
 
45
    "void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo) const;",
 
46
    "void func(Some_Type const,",
 
47
    "void func(Some_Type const);",
 
48
    "void func(Some_Type const) const;",
 
49
    "void func(Some_Type const) const throw (whatever);",
 
50
    "void func(Some_Type const abc,",
 
51
    "void func(Some_Type const abc);",
 
52
    "void func(Some_Type const abc) const;",
 
53
    "void func(std::string * const & * foo, Some_Type const,",
 
54
    "void func(std::string * const & * foo, Some_Type const);",
 
55
    "void func(std::string * const & * foo, Some_Type const) const;",
 
56
    "void func(std::string * const & * foo, Some_Type const) const throw (whatever);",
 
57
    "void func(std::string * const & * foo, Some_Type const abc,",
 
58
    "void func(std::string * const & * foo, Some_Type const abc);",
 
59
    "void func(std::string * const & * foo, Some_Type const abc) const;",
 
60
    "void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo,",
 
61
    "void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo);",
 
62
    "void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo) const;",
 
63
    "void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo) const throw (whatever);",
 
64
    "void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo,",
 
65
    "void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo);",
 
66
    "void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo) const;",
 
67
    "void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo,",
 
68
    "void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo);",
 
69
    "void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo) const;",
 
70
    "void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo) const throw (whatever);",
 
71
    "void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo,",
 
72
    "void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo);",
 
73
    "void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo) const;",
 
74
    " virtual void func(const Some_Type,",
 
75
    " virtual void * func(const Some_Type,",
 
76
    "  virtual std::string & func(const Some_Type,",
 
77
]
 
78
 
 
79
allowed = [
 
80
    "void func(Some_Type,",
 
81
    "void func(Some_Type);",
 
82
    "void func(Some_Type) const;",
 
83
    "void func(Some_Type) const throw (whatever);",
 
84
    "void func(Some_Type abc,",
 
85
    "void func(Some_Type abc);",
 
86
    "void func(Some_Type abc) const;",
 
87
    "void func(std::string * const & * foo, Some_Type,",
 
88
    "void func(std::string * const & * foo, Some_Type);",
 
89
    "void func(std::string * const & * foo, Some_Type) const;",
 
90
    "void func(std::string * const & * foo, Some_Type) const throw (whatever);",
 
91
    "void func(std::string * const & * foo, Some_Type abc,",
 
92
    "void func(std::string * const & * foo, Some_Type abc);",
 
93
    "void func(std::string * const & * foo, Some_Type abc) const;",
 
94
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo,",
 
95
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo);",
 
96
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const;",
 
97
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const throw (whatever);",
 
98
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo,",
 
99
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo);",
 
100
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo) const;",
 
101
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo,",
 
102
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo);",
 
103
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const;",
 
104
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const throw (whatever);",
 
105
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo,",
 
106
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo);",
 
107
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo) const;",
 
108
    "void func(Some_Type,",
 
109
    "void func(Some_Type);",
 
110
    "void func(Some_Type) const;",
 
111
    "void func(Some_Type) const throw (whatever);",
 
112
    "void func(Some_Type abc,",
 
113
    "void func(Some_Type abc);",
 
114
    "void func(Some_Type abc) const;",
 
115
    "void func(std::string * const & * foo, Some_Type,",
 
116
    "void func(std::string * const & * foo, Some_Type);",
 
117
    "void func(std::string * const & * foo, Some_Type) const;",
 
118
    "void func(std::string * const & * foo, Some_Type) const throw (whatever);",
 
119
    "void func(std::string * const & * foo, Some_Type abc,",
 
120
    "void func(std::string * const & * foo, Some_Type abc);",
 
121
    "void func(std::string * const & * foo, Some_Type abc) const;",
 
122
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo,",
 
123
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo);",
 
124
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const;",
 
125
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const throw (whatever);",
 
126
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo,",
 
127
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo);",
 
128
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo) const;",
 
129
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo,",
 
130
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo);",
 
131
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const;",
 
132
    "void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const throw (whatever);",
 
133
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo,",
 
134
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo);",
 
135
    "void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo) const;",
 
136
    " virtual void func(Some_Type,",
 
137
    " virtual void * func(Some_Type,",
 
138
    "  virtual std::string & func(Some_Type,", 
 
139
]