File: attributes.h

package info (click to toggle)
nescc 1.3.5-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 11,604 kB
  • sloc: ansic: 72,471; sh: 4,474; yacc: 2,171; perl: 2,109; java: 1,699; makefile: 1,535; lisp: 693; xml: 182; lex: 95; cpp: 28
file content (39 lines) | stat: -rw-r--r-- 1,685 bytes parent folder | download | duplicates (2)
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
#ifndef ATTRIBUTES_H
#define ATTRIBUTES_H

/* Provide warnings about ignored attributes and attribute lists */

void ignored_attribute(attribute attr);
void ignored_attributes(attribute alist);
void ignored_dd_attributes(dd_list alist);
void ignored_gcc_attribute(gcc_attribute attr);
void ignored_nesc_attribute(nesc_attribute attr);

/* handle_X_attribute(attr, obj):
   Attempt to apply attribute attr to obj of kind X (decl, field, tag, type),
   modifying obj.

   For decls, fields, tags:
     If attr is not applicable: issue a warning with ignored_attributes
   For types:
     Return TRUE if applicable, FALSE if not
   (this difference is due to the funky rules of attributes used as type qualifiers)
*/

void handle_nescdecl_attribute(attribute attr, nesc_declaration ndecl);
void handle_decl_attribute(attribute attr, data_declaration ddecl);
void handle_field_attribute(attribute attr, field_declaration fdecl);
void handle_tag_attribute(attribute attr, tag_declaration tdecl);
bool handle_type_attribute(attribute attr, type *t);

/* Functions to handle regular and dd list of attributes */
void handle_nescdecl_attributes(attribute alist, nesc_declaration ndecl);
void handle_decl_attributes(attribute alist, data_declaration ddecl);
void handle_field_attributes(attribute alist, field_declaration fdecl);
void handle_tag_attributes(attribute alist, tag_declaration tdecl);
void handle_nescdecl_dd_attributes(dd_list alist, nesc_declaration ndecl);
void handle_decl_dd_attributes(dd_list alist, data_declaration ddecl);
void handle_field_dd_attributes(dd_list alist, field_declaration fdecl);
void handle_tag_dd_attributes(dd_list alist, tag_declaration tdecl);

#endif