[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/spec/behavior_names.c (with preprocessing)
tests/spec/behavior_names.c:7:[kernel] warning: reference to unknown behavior UNEXISTENT_BEHAVIOR. Ignoring logic specification of function f
tests/spec/behavior_names.c:19:[kernel] warning: reference to unknown behavior UNEXISTENT_BEHAVIOR. Ignoring logic specification of function g
tests/spec/behavior_names.c:27:[kernel] warning: reference to unknown behavior foo. Ignoring code annotation
tests/spec/behavior_names.c:34:[kernel] warning: behavior foo already defined. Ignoring logic specification of function h
tests/spec/behavior_names.c:38:[kernel] warning: behavior foo already defined. Ignoring code annotation
tests/spec/behavior_names.c:47:[kernel] warning: behavior foo already defined. Ignoring code annotation
/* Generated by Frama-C */
void f(void)
{
  return;
}

/*@ predicate should_be_rejected= \true;
 */
/*@ predicate should_be_kept= \true;

*/
void g(void)
{
  /*@ behavior foo:
        ensures \true; */
  {
    /*@ for foo: assert should_be_kept; */ ;
    f();
    /*@ for foo: assert should_be_kept; */ ;
    f();
  }
  return;
}

void h(void)
{
  return;
}

/*@ behavior foo:
      ensures \true; */
void i(void)
{
  return;
}

void j(void)
{
  int x;
  x = 0;
  /*@ behavior foo:
        ensures \true; */
  {
    x ++;
    if (x) 
      /*@ behavior bar:
            ensures \true; */
      x ++;
    else 
      /*@ behavior bar:
            ensures should_be_kept; */
      x ++;
  }
  return;
}

/*@ behavior boolean:
      ensures boolean: \true;
    
    behavior char:
      ensures char: \true;
    
    behavior for:
      ensures for: \true;
    
    behavior while:
      ensures while: \true;
    
    behavior normal:
      ensures ensures: \true;
    
    behavior logic:
      ensures logic: \true;
 */
void keyword_as_behavior_and_term_names(void)
{
  return;
}


