Print this page
new smatch
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/tools/smatch/src/scope.h
+++ new/usr/src/tools/smatch/src/scope.h
1 1 #ifndef SCOPE_H
2 2 #define SCOPE_H
3 3 /*
4 4 * Symbol scoping is pretty simple.
5 5 *
6 6 * Copyright (C) 2003 Transmeta Corp.
7 7 * 2003 Linus Torvalds
8 8 *
9 9 * Permission is hereby granted, free of charge, to any person obtaining a copy
10 10 * of this software and associated documentation files (the "Software"), to deal
11 11 * in the Software without restriction, including without limitation the rights
12 12 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 13 * copies of the Software, and to permit persons to whom the Software is
14 14 * furnished to do so, subject to the following conditions:
15 15 *
16 16 * The above copyright notice and this permission notice shall be included in
17 17 * all copies or substantial portions of the Software.
18 18 *
19 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
↓ open down ↓ |
21 lines elided |
↑ open up ↑ |
22 22 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 23 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 25 * THE SOFTWARE.
26 26 */
27 27
28 28 struct symbol;
29 29 struct position;
30 30
31 31 struct scope {
32 - struct token *token; /* Scope start information */
32 + struct token *token;
33 33 struct symbol_list *symbols; /* List of symbols in this scope */
34 34 struct scope *next;
35 35 };
36 36
37 37 extern struct scope
38 38 *block_scope,
39 39 *function_scope,
40 40 *file_scope,
41 41 *global_scope;
42 42
43 43 static inline int toplevel(struct scope *scope)
44 44 {
45 45 return scope == file_scope || scope == global_scope;
46 46 }
47 47
48 48 extern void start_file_scope(void);
49 49 extern void end_file_scope(void);
50 50 extern void new_file_scope(void);
51 51
52 52 extern void start_symbol_scope(struct position pos);
53 53 extern void end_symbol_scope(void);
54 54
55 55 extern void start_function_scope(struct position pos);
56 56 extern void end_function_scope(void);
57 57
58 58 extern void bind_scope(struct symbol *, struct scope *);
59 59 extern void rebind_scope(struct symbol *, struct scope *);
60 60
61 61 extern int is_outer_scope(struct scope *);
62 62 #endif
↓ open down ↓ |
20 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX