Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
af9b9a12
Commit
af9b9a12
authored
May 14, 2009
by
Michael Beck
Browse files
- fix r25941
[r25956]
parent
202b4393
Changes
2
Hide whitespace changes
Inline
Side-by-side
include/libfirm/irprog.h
View file @
af9b9a12
...
...
@@ -112,8 +112,10 @@ ir_prog *get_irp(void);
/**
* Creates a new ir_prog (a module or compilation unit),
* returns it and sets irp with it.
*
* @param module_name the name of this irp (module)
*/
ir_prog
*
new_ir_prog
(
void
);
ir_prog
*
new_ir_prog
(
const
char
*
name
);
/** frees all memory used by irp. Types in type list and irgs in irg
* list must be freed by hand before. */
...
...
ir/ir/irprog.c
View file @
af9b9a12
...
...
@@ -78,14 +78,16 @@ static ir_prog *new_incomplete_ir_prog(void)
static
ir_prog
*
complete_ir_prog
(
ir_prog
*
irp
,
const
char
*
module_name
)
{
int
i
;
#define IDENT(x) new_id_from_chars(x, sizeof(x) - 1)
irp
->
name
=
new_id_from_str
(
module_name
);
irp
->
segment_types
[
IR_SEGMENT_GLOBAL
]
=
new_type_class
(
new_id_from_str
(
"GlobalType"
));
irp
->
segment_types
[
IR_SEGMENT_GLOBAL
]
=
new_type_class
(
IDENT
(
"GlobalType"
));
irp
->
segment_types
[
IR_SEGMENT_THREAD_LOCAL
]
=
new_type_struct
(
new_id_from_str
(
"ThreadLocal"
));
=
new_type_struct
(
IDENT
(
"ThreadLocal"
));
irp
->
segment_types
[
IR_SEGMENT_CONSTRUCTORS
]
=
new_type_struct
(
new_id_from_str
(
"Constructors"
));
=
new_type_struct
(
IDENT
(
"Constructors"
));
irp
->
segment_types
[
IR_SEGMENT_DESTRUCTORS
]
=
new_type_struct
(
new_id_from_str
(
"Destructors"
));
=
new_type_struct
(
IDENT
(
"Destructors"
));
/* Remove these types from type list. Must be treated differently than
other types. */
for
(
i
=
0
;
i
<
IR_SEGMENT_COUNT
;
++
i
)
{
...
...
@@ -111,6 +113,7 @@ static ir_prog *complete_ir_prog(ir_prog *irp, const char *module_name) {
irp
->
globals_entity_usage_state
=
ir_entity_usage_not_computed
;
return
irp
;
#undef IDENT
}
/* initializes ir_prog. Constructs only the basic lists. */
...
...
@@ -125,8 +128,8 @@ void init_irprog_2(void) {
/* Create a new ir prog. Automatically called by init_firm through
init_irprog. */
ir_prog
*
new_ir_prog
(
void
)
{
return
complete_ir_prog
(
new_incomplete_ir_prog
(),
INITAL_PROG_NAME
);
ir_prog
*
new_ir_prog
(
const
char
*
name
)
{
return
complete_ir_prog
(
new_incomplete_ir_prog
(),
name
);
}
/* frees all memory used by irp. Types in type list, irgs in irg
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment