c.accept_children (codegen);
- if (c.initializer is InitializerList) {
- var cdecl = new CCodeDeclaration (c.type_reference.get_const_cname ());
- var arr = "";
- if (c.type_reference is ArrayType) {
- arr = "[]";
- }
- cdecl.add_declarator (new CCodeVariableDeclarator ("%s%s".printf (c.get_cname (), arr), (CCodeExpression) c.initializer.ccodenode));
- cdecl.modifiers = CCodeModifiers.STATIC;
+ if (!c.external) {
+ if (c.initializer is InitializerList) {
+ var cdecl = new CCodeDeclaration (c.type_reference.get_const_cname ());
+ var arr = "";
+ if (c.type_reference is ArrayType) {
+ arr = "[]";
+ }
+ cdecl.add_declarator (new CCodeVariableDeclarator ("%s%s".printf (c.get_cname (), arr), (CCodeExpression) c.initializer.ccodenode));
+ cdecl.modifiers = CCodeModifiers.STATIC;
- decl_space.add_constant_declaration (cdecl);
- } else {
- var cdefine = new CCodeMacroReplacement.with_expression (c.get_cname (), (CCodeExpression) c.initializer.ccodenode);
- decl_space.add_type_member_declaration (cdefine);
+ decl_space.add_constant_declaration (cdecl);
+ } else {
+ var cdefine = new CCodeMacroReplacement.with_expression (c.get_cname (), (CCodeExpression) c.initializer.ccodenode);
+ decl_space.add_type_member_declaration (cdefine);
+ }
}
}
type_reference.check (analyzer);
- if (!external_package) {
+ if (!external) {
if (initializer == null) {
error = true;
Report.error (source_reference, "A const field requires a initializer to be provided");