* The entity is defined outside the compilation unit but potentially used
* here.
*/
- ir_visibility_external
+ ir_visibility_external,
+ /**
+ * This has the same semantic as visibility_local. Additionally the symbol is
+ * completely hidden from the linker (it only appears in the assembly).
+ * While visibility_local is probably still visible to debuggers,
+ * visibility_private symbols aren't and probably won't appear in the object
+ * files
+ */
+ ir_visibility_private
} ir_visibility;
/**
IR_LINKAGE_HIDDEN_USER = 1 << 4
} ir_linkage;
-/**
- * The following are some common combinations of linkage types seen in the
- * C/C++ languages
- */
-enum ir_common_linkages {
- /** C "common" symbol */
- IR_LINKAGE_COMMON = IR_LINKAGE_MERGE,
- /** C "weak" symbol */
- IR_LINKAGE_WEAKSYM = IR_LINKAGE_WEAK | IR_LINKAGE_MERGE,
- /** C++ comdat code */
- IR_LINKAGE_COMDAT = IR_LINKAGE_GARBAGE_COLLECT | IR_LINKAGE_GARBAGE_COLLECT
-};
-
/**
* Return the visibility class of an entity
*/
unsigned get_entity_alignment(const ir_entity *entity);
/** Allows you to override the type alignment for an entity.
+ * @param entity the entity
* @param alignment alignment in bytes
*/
void set_entity_alignment(ir_entity *entity, unsigned alignment);
/** Create a new method type.
*
- * @param name the name (ident) of this type
* @param n_param the number of parameters
* @param n_res the number of results
*
/** Create a new method type with debug information.
*
- * @param name the name (ident) of this type
* @param n_param the number of parameters
* @param n_res the number of results
* @param db user defined debug information