[Bro-Dev] [JIRA] (BIT-1288) int: &default value has inconsistent type (0 and int)

Jon Siwek (JIRA) jira at bro-tracker.atlassian.net
Mon Nov 17 15:05:08 PST 2014


    [ https://bro-tracker.atlassian.net/browse/BIT-1288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18900#comment-18900 ] 

Jon Siwek commented on BIT-1288:
--------------------------------

There's maybe two parts to this:

1) Improve the type coercion that &default attributes use.  E.g. this may be enough:

{noformat}
diff --git a/src/Attr.cc b/src/Attr.cc
index d6d0f6e..3f86238 100644
--- a/src/Attr.cc
+++ b/src/Attr.cc
@@ -265,6 +265,11 @@ void Attributes::CheckAttr(Attr* a)
                                // Ok.
                                break;
 
+                       Expr* e = a->AttrExpr();
+                       if ( check_and_promote_expr(e, type) )
+                               // Ok.
+                               break;
+
                        a->AttrExpr()->Error("&default value has inconsistent type", type);
                        }
 
{noformat}

2) I don't think &default currently means anything when applied to variables as the test example shows.  Was that just a short way to get the parser to create some type declarations and show the error message, or can you give more context on how you're trying to use this?  Wouldn't assigning a value directly be conceptually the same as &default here?

> int: &default value has inconsistent type (0 and int)
> -----------------------------------------------------
>
>                 Key: BIT-1288
>                 URL: https://bro-tracker.atlassian.net/browse/BIT-1288
>             Project: Bro Issue Tracker
>          Issue Type: Problem
>          Components: Bro
>    Affects Versions: git/master
>         Environment: Debian 7
>            Reporter: Christian Struck
>              Labels: language
>             Fix For: 2.4
>
>         Attachments: test.bro
>
>
> It seems that default >=0 for integer are not interpreted as int and therefore not assignable. for the zero value -0 works, but for -1 is not 1.



--
This message was sent by Atlassian JIRA
(v6.4-OD-09-008#64005)


More information about the bro-dev mailing list