All pastes #24322 Raw Edit

Mine

public text v1 · immutable
#24322 ·published 2005-09-30 21:27 UTC
rendered paste body
include/openpbx/lock.h: (in function opbx_mutex_init)
include/openpbx/lock.h:490:25: Passed storage attr contains 1 undefined field:
                                 __mutexkind
 Storage derivable from a parameter, return value or global is not defined.
 Use /*@out@*/ to denote passed or returned storage which need not be defined.
 (Use -compdef to inhibit warning)
include/openpbx/lock.h:490:2: Return value (type int) ignored:
                                pthread_mutexatt...
 Result returned by function call is not used. If this is intended, can cast
 result to (void) to eliminate message. (Use -retvalint to inhibit warning)
include/openpbx/lock.h:491:2: Unrecognized identifier:
                                pthread_mutexattr_settype
 Identifier used in code has not been declared. (Use -unrecog to inhibit
 warning)
include/openpbx/lock.h:491:35: Unrecognized identifier: PTHREAD_MUTEX_RECURSIVE
include/openpbx/time.h: (in function opbx_tvzero)
include/openpbx/time.h:63:9: Return value type boolean does not match declared
                               type int: (t.tv_sec == 0 && t.tv_usec == 0)
 To make bool and int types equivalent, use +boolint.
include/openpbx/time.h: (in function opbx_tveq)
include/openpbx/time.h:93:9: Return value type boolean does not match declared
   type int: (_a.tv_sec == _b.tv_sec && _a.tv_usec == _b.tv_usec)
include/openpbx/time.h: (in function opbx_tvnow)
include/openpbx/time.h:104:2: Unrecognized identifier: gettimeofday
include/openpbx/time.h:105:9: Variable t used before definition
 An rvalue is used that may not be initialized to a value on some execution
 path. (Use -usedef to inhibit warning)
include/openpbx/time.h: (in function opbx_tv)
include/openpbx/time.h:135:2: Variable t used before definition
include/openpbx/strings.h: (in function opbx_strlen_zero)
include/openpbx/strings.h:35:9: Return value type boolean does not match
                                  declared type int: (*s == '\0')
include/openpbx/strings.h: (in function opbx_skip_blanks)
include/openpbx/strings.h:47:17: Operands of < have incompatible types (char,
                                   int): *str < 33
 To make char and int types equivalent, use +charint.
include/openpbx/strings.h:47:9: Left operand of && is non-boolean (char):
                                  *str && *str < 33
 The operand of a boolean operator is not a boolean. Use +ptrnegate to allow !
 to be used on pointers. (Use -boolops to inhibit warning)
include/openpbx/strings.h:49:9: Implicitly temp storage str returned as
                                  implicitly only: str
 Temp storage (associated with a formal parameter) is transferred to a
 non-temporary reference. The storage may be released or new aliases created.
 (Use -temptrans to inhibit warning)
include/openpbx/strings.h: (in function opbx_trim_blanks)
include/openpbx/strings.h:71:27: Operands of < have incompatible types (char,
                                   int): *work < 33
include/openpbx/strings.h:74:9: Implicitly temp storage str returned as
                                  implicitly only: str
include/openpbx/strings.h: (in function opbx_skip_nonblanks)
include/openpbx/strings.h:86:17: Operands of > have incompatible types (char,
                                   int): *str > 32
include/openpbx/strings.h:86:9: Left operand of && is non-boolean (char):
                                  *str && *str > 32
include/openpbx/strings.h:88:9: Implicitly temp storage str returned as
                                  implicitly only: str
include/openpbx/strings.h: (in function opbx_strip)
include/openpbx/strings.h:106:3: Return value (type char *) ignored:
                                   opbx_trim_blanks(s)
 Result returned by function call is not used. If this is intended, can cast
 result to (void) to eliminate message. (Use -retvalother to inhibit warning)
include/openpbx/strings.h:107:9: Possibly null storage s returned as non-null:
                                   s
 Function returns a possibly null pointer, but is not declared using
 /*@null@*/ annotation of result.  If function may return NULL, add /*@null@*/
 annotation to the return value declaration. (Use -nullret to inhibit warning)
  include/openpbx/strings.h:104:6: Storage s may become null
include/openpbx/strings.h: (in function opbx_copy_string)
include/openpbx/strings.h:155:9: Operands of && are non-booleans (char,
                                   size_t): *src && size
include/openpbx/strings.h:159:8: Operand of ! is non-boolean (size_t): !size
include/openpbx/utils.h: (in function inaddrcmp)
include/openpbx/utils.h:186:9: Return value type boolean does not match
   declared type int: ((sin1->sin_addr.s_addr != sin2->sin_addr.s_addr) ||
   (sin1->sin_port != sin2->sin_port))
include/openpbx/channel.h: (in function opbx_select)
include/openpbx/channel.h:1038:18: Variable tv shadows outer declaration
 An outer declaration is shadowed by the local declaration. (Use -shadow to
 inhibit warning)
  include/openpbx/time.h:33:23: Previous declaration of tv: struct timeval
include/openpbx/channel.h:1045:3: Unrecognized identifier: timersub
include/openpbx/channel.h:1047:10: Arrow access field of non-struct or union
                                     pointer (struct timeval *): tvp->tv_sec
 Types are incompatible. (Use -type to inhibit warning)
include/openpbx/channel.h:1047:30: Arrow access field of non-struct or union
                                     pointer (struct timeval *): tvp->tv_sec
include/openpbx/channel.h:1047:50: Arrow access field of non-struct or union
                                     pointer (struct timeval *): tvp->tv_usec
include/openpbx/channel.h:1048:7: Arrow access field of non-struct or union
                                    pointer (struct timeval *): tvp->tv_sec
include/openpbx/channel.h:1049:7: Arrow access field of non-struct or union
                                    pointer (struct timeval *): tvp->tv_usec
include/openpbx/channel.h:1054:41: Null storage passed as non-null param:
                                     select (..., NULL)
 A possibly null pointer is passed as a parameter corresponding to a formal
 parameter with no /*@null@*/ annotation.  If NULL may be used for this
 parameter, add a /*@null@*/ annotation to the function parameter declaration.
 (Use -nullpass to inhibit warning)
include/openpbx/callerid.h: (in function callerid_getcarrier)
include/openpbx/callerid.h:194:2: Assignment of double to float:
                                    t = 2.0 - (*cr * *cr + *ci * *ci)
 To allow all numeric types to match, use +relaxtypes.
pbx.c:89:50: Initializer block for background_opts has 4 elements, but declared
               as struct opbx_option [128]: <error>, <error>, <error>, <error>
 Initializer does not define all elements of a declared array. (Use
 -initallelements to inhibit warning)
pbx.c:98:49: Initializer block for waitexten_opts has 1 element, but declared
               as struct opbx_option [128]: <error>
pbx.c:226:43: Static maxcalllock.__m_owner initialized to null value:
                maxcalllock.__m_owner = 0
 A reference with no null annotation is assigned or initialized to NULL.  Use
 /*@null@*/ to declare the reference as a possibly null pointer. (Use
 -nullassign to inhibit warning)
pbx.c:229:39: Static acflock.__m_owner initialized to null value:
                acflock.__m_owner = 0
pbx.c:230:48: Static acf_root initialized to null value: acf_root = NULL
pbx.c:230:48: Static acf_root initialized to null value:
                struct opbx_custom_function * acf_root = NULL = NULL
pbx.c:527:40: Static contexts initialized to null value: contexts = NULL
pbx.c:527:40: Static contexts initialized to null value:
                struct opbx_context * contexts = NULL = NULL
pbx.c:528:39: Static conlock.__m_owner initialized to null value:
                conlock.__m_owner = 0
pbx.c:529:32: Static apps initialized to null value: apps = NULL
pbx.c:529:32: Static apps initialized to null value:
                struct opbx_app * apps = NULL = NULL
pbx.c:530:39: Static applock.__m_owner initialized to null value:
                applock.__m_owner = 0
pbx.c:532:32: Global switches initialized to null value: switches = NULL
pbx.c:532:32: Global switches initialized to null value:
                struct opbx_switch * switches = NULL = NULL
pbx.c:533:42: Static switchlock.__m_owner initialized to null value:
                switchlock.__m_owner = 0
pbx.c:535:40: Static hintlock.__m_owner initialized to null value:
                hintlock.__m_owner = 0
pbx.c:537:27: Global hints initialized to null value: hints = NULL
pbx.c:537:27: Global hints initialized to null value:
                struct opbx_hint * hints = NULL = NULL
pbx.c:538:34: Global statecbs initialized to null value: statecbs = NULL
pbx.c:538:34: Global statecbs initialized to null value:
                struct opbx_state_cb * statecbs = NULL = NULL
pbx.c: (in function pbx_exec)
pbx.c:554:6: Test expression for if not boolean, type int: newstack
 Test expression type is not boolean or int. (Use -predboolint to inhibit
 warning)
pbx.c:562:3: Unqualified storage app->name assigned to implicitly only:
               c->appl = app->name
 Unqualified storage is transferred in an inconsistent way. (Use
 -unqualifiedtrans to inhibit warning)
pbx.c:563:3: Implicitly temp storage data assigned to implicitly only:
               c->data = data
pbx.c:564:17: Possibly null storage c->cdr derivable from parameter execute (c,
                ...)
 A possibly null pointer is reachable from a parameter or global variable that
 is not declared using a /*@null@*/ annotation. (Use -nullstate to inhibit
 warning)
pbx.c:566:3: Implicitly only storage c->appl (type char *) not released before
               assignment: c->appl = saved_c_appl
 A memory leak has been detected. Only-qualified storage is not released
 before the last reference to it is lost. (Use -mustfreeonly to inhibit
 warning)
pbx.c:567:3: Implicitly only storage c->data (type char *) not released before
               assignment: c->data = saved_c_data
pbx.c:568:14: Storage app->name reachable from parameter is kept (should be
                unqualified)
 Storage derivable from a parameter does not match the alias kind expected for
 the formal parameter. (Use -compmempass to inhibit warning)
  pbx.c:562:3: Storage app->name becomes kept
pbx.c: (in function pbx_findapp)
pbx.c:589:6: Test expression for if not boolean, type int:
               pthread_mutex_lock(&applock)
pbx.c:591:10: Null storage returned as non-null: NULL
pbx.c:595:8: Unrecognized identifier: strcasecmp
pbx.c:599:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:600:9: Null storage tmp returned as non-null: tmp
  pbx.c:593:8: Storage tmp becomes null
pbx.c:600:13: Function returns with global apps referencing released storage
 A global variable does not satisfy its annotations when control is
 transferred. (Use -globstate to inhibit warning)
  pbx.c:600:9: Storage apps released
pbx.c: (in function pbx_findswitch)
pbx.c:607:6: Test expression for if not boolean, type int:
               pthread_mutex_lock(&switchlock)
pbx.c:609:10: Null storage returned as non-null: NULL
pbx.c:617:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:618:9: Null storage asw returned as non-null: asw
  pbx.c:611:8: Storage asw becomes null
pbx.c:618:13: Function returns with global switches referencing released
                storage
  pbx.c:618:9: Storage switches released
pbx.c: (in function include_valid)
pbx.c:623:7: Operand of ! is non-boolean (int): !i->hastime
pbx.c: (in function pbx_destroy)
pbx.c:631:7: Implicitly temp storage p passed as only param: free (p)
pbx.c: (in function opbx_extension_match)
pbx.c:715:7: Operand of ! is non-boolean (int): !strcmp(pattern, data)
pbx.c:717:121: Operands of && are non-booleans (int, char): match && *data
pbx.c:717:139: Right operand of && is non-boolean (char):
                 match && *data && *pattern
pbx.c:717:417: Operands of > have incompatible types (int, size_t):
                 border > strlen(pattern)
 To allow arbitrary integral types to match any integral type, use
 +matchanyintegral.
pbx.c:717:1436: Operand of ! is non-boolean (char): !*data
pbx.c:717:1426: Left operand of && is non-boolean (int): match && !*data
pbx.c:719:16: Left operand of && is non-boolean (char):
                *pattern && (*pattern != '/')
pbx.c:719:6: Left operand of || is non-boolean (char):
               *data || (*pattern && (*pattern != '/'))
pbx.c: (in function opbx_extension_close)
pbx.c:732:42: Unrecognized identifier: strncasecmp
pbx.c:733:5: Operand of ! is non-boolean (int): !needmore
pbx.c:736:121: Operands of && are non-booleans (int, char): match && *data
pbx.c:736:139: Right operand of && is non-boolean (char):
                 match && *data && *pattern
pbx.c:736:417: Operands of > have incompatible types (int, size_t):
                 border > strlen(pattern)
pbx.c:736:1436: Operand of ! is non-boolean (char): !*data
pbx.c:736:1426: Left operand of && is non-boolean (int): match && !*data
pbx.c:739:7: Operand of ! is non-boolean (int): !needmore
pbx.c:739:19: Right operand of || is non-boolean (char): !needmore || *pattern
pbx.c: (in function opbx_context_find)
pbx.c:748:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:758:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:759:9: Null storage tmp returned as non-null: tmp
  pbx.c:750:9: Storage tmp becomes null
pbx.c:759:13: Function returns with global contexts referencing released
                storage
  pbx.c:759:9: Storage contexts released
pbx.c: (in function matchcid)
pbx.c:775:7: Operand of ! is non-boolean (int): !opbx_strlen_zero(cidpattern)
pbx.c: (in function pbx_find_extension)
pbx.c:796:7: Operand of ! is non-boolean (int): !*stacklen
pbx.c:804:10: Null storage returned as non-null: NULL
pbx.c:804:15: Function returns with null storage derivable from parameter *swo
  pbx.c:798:10: Storage *swo becomes null
pbx.c:804:15: Function returns with null storage derivable from parameter *data
  pbx.c:799:11: Storage *data becomes null
pbx.c:809:11: Null storage returned as non-null: NULL
pbx.c:817:18: Operand of ! is non-boolean (int): !strcmp(tmp->name, context)
pbx.c:817:7: Left operand of || is non-boolean (struct opbx_context *):
               bypass || !strcmp(tmp->name, context)
pbx.c:825:28: Right operand of && is non-boolean (int):
                (action != 4) && opbx_extension_match(eroot->exten, exten)
pbx.c:826:28: Right operand of && is non-boolean (int):
   (action == 3) && (opbx_extension_close(eroot->exten, exten, 0))
pbx.c:827:28: Right operand of && is non-boolean (int):
   (action == 4) && (match = opbx_extension_close(eroot->exten, exten, 1))
pbx.c:828:11: Operand of ! is non-boolean (int): !eroot->matchcid
pbx.c:828:30: Right operand of || is non-boolean (int):
                !eroot->matchcid || matchcid(eroot->cidmatch, callerid)
pbx.c:843:14: Operands of && are non-boolean (char *): label && e->label
pbx.c:843:36: Operand of ! is non-boolean (int): !strcmp(label, e->label)
pbx.c:846:19: Released storage bypass->root reachable from parameter at return
                point
 Memory is used after it has been released (either by passing as an only param
 or assigning to an only global). (Use -usereleased to inhibit warning)
  pbx.c:846:17: Storage bypass->root released
pbx.c:846:19: Released storage contexts->root reachable from global
  pbx.c:846:17: Storage contexts->root released
pbx.c:851:18: Released storage bypass->root reachable from parameter at return
                point
  pbx.c:851:16: Storage bypass->root released
pbx.c:851:18: Released storage contexts->root reachable from global
  pbx.c:851:16: Storage contexts->root released
pbx.c:863:12: Null storage returned as non-null: NULL
pbx.c:870:10: Test expression for if not boolean, type int: sw->eval
pbx.c:873:85: Test expression for conditional not boolean, type int: sw->eval
pbx.c:875:87: Test expression for conditional not boolean, type int: sw->eval
pbx.c:877:81: Test expression for conditional not boolean, type int: sw->eval
pbx.c:878:10: Test expression for if not boolean, type int: res
pbx.c:881:15: Test expression for conditional not boolean, type int: sw->eval
pbx.c:881:7: Only storage sw->tmpdata assigned to unqualified:
               *data = sw->eval ? sw->tmpdata : sw->data
 The only reference to this storage is transferred to another reference (e.g.,
 by returning it) that does not have the only annotation. This may lead to a
 memory leak, since the new reference is not necessarily released. (Use
 -onlytrans to inhibit warning)
pbx.c:883:14: Null storage returned as non-null: NULL
pbx.c:896:9: Test expression for if not boolean, type int: include_valid(i)
pbx.c:897:75: Null storage label passed as non-null param:
                pbx_find_extension (..., label, ...)
pbx.c:897:128: Null storage *swo derivable from parameter pbx_find_extension
                 (..., swo, ...)
  pbx.c:798:10: Storage *swo becomes null
pbx.c:897:133: Null storage *data derivable from parameter pbx_find_extension
                 (..., data, ...)
  pbx.c:799:11: Storage *data becomes null
pbx.c:898:16: Fresh storage asw not released before return
 A memory leak has been detected. Storage allocated locally is not released
 before the last reference to it is lost. (Use -mustfreefresh to inhibit
 warning)
  pbx.c:868:10: Fresh storage asw created
pbx.c:900:14: Null storage returned as non-null: NULL
pbx.c:900:19: Fresh storage asw not released before return
  pbx.c:868:10: Fresh storage asw created
pbx.c:908:9: Null storage returned as non-null: NULL
pbx.c: (in function pbx_retrieve_variable)
pbx.c:927:20: Passed storage tmpvar not completely defined (*tmpvar is
                undefined): opbx_copy_string (tmpvar, ...)
pbx.c:932:25: Possibly null storage c passed as non-null param:
                pbx_retrieve_variable (c, ...)
pbx.c:932:34: Null storage *ret derivable from parameter pbx_retrieve_variable
                (..., ret, ...)
  pbx.c:925:7: Storage *ret becomes null
pbx.c:934:11: Function returns with null storage derivable from parameter *ret
  pbx.c:925:7: Storage *ret becomes null
pbx.c:943:4: Assignment of arbitrary unsigned integral type to int:
               offset2 = strlen(*ret) - offset
pbx.c:948:7: Operands of > have incompatible types (int, size_t):
               abs(offset) > strlen(*ret)
pbx.c:950:5: Assignment of size_t to int: offset = strlen(*ret)
pbx.c:952:5: Assignment of size_t to int: offset = -strlen(*ret)
pbx.c:954:60: Operands of > have incompatible types (int, size_t):
                offset + offset2 > strlen(*ret)
pbx.c:956:5: Assignment of arbitrary unsigned integral type to int:
               offset2 = strlen(*ret) - offset
pbx.c:958:5: Assignment of arbitrary unsigned integral type to int:
               offset2 = strlen(*ret) + offset
pbx.c:965:19: Operand of ! is non-boolean (int): !strncmp(var, "CALL", 4)
pbx.c:965:13: Left operand of && is non-boolean (struct opbx_channel *):
                c && !strncmp(var, "CALL", 4)
pbx.c:966:8: Operand of ! is non-boolean (int): !strncmp(var + 4, "ER", 2)
pbx.c:967:9: Operand of ! is non-boolean (int): !strncmp(var + 6, "ID", 2)
pbx.c:968:10: Operand of ! is non-boolean (char): !var[8]
pbx.c:971:28: Function snprintf expects arg 2 to be size_t gets int:
                workspacelen
pbx.c:971:8: Return value (type int) ignored: snprintf(workspa...
pbx.c:973:52: Function opbx_copy_string expects arg 3 to be size_t gets int:
                workspacelen
pbx.c:977:52: Function opbx_copy_string expects arg 3 to be size_t gets int:
                workspacelen
pbx.c:981:17: Operand of ! is non-boolean (int): !strcmp(var + 8, "NUM")
pbx.c:984:51: Function opbx_copy_string expects arg 3 to be size_t gets int:
                workspacelen
pbx.c:988:17: Operand of ! is non-boolean (int): !strcmp(var + 8, "NAME")
pbx.c:991:52: Function opbx_copy_string expects arg 3 to be size_t gets int:
                workspacelen
pbx.c:996:16: Operand of ! is non-boolean (int): !strcmp(var + 6, "ANI")
pbx.c:999:50: Function opbx_copy_string expects arg 3 to be size_t gets int:
                workspacelen
pbx.c:1005:15: Operand of ! is non-boolean (int): !strncmp(var + 4, "ING", 3)
pbx.c:1006:9: Operand of ! is non-boolean (int): !strcmp(var + 7, "PRES")
pbx.c:1008:25: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1008:5: Return value (type int) ignored: snprintf(workspa...
pbx.c:1010:16: Operand of ! is non-boolean (int): !strcmp(var + 7, "ANI2")
pbx.c:1012:25: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1012:5: Return value (type int) ignored: snprintf(workspa...
pbx.c:1014:16: Operand of ! is non-boolean (int): !strcmp(var + 7, "TON")
pbx.c:1016:25: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1016:5: Return value (type int) ignored: snprintf(workspa...
pbx.c:1018:16: Operand of ! is non-boolean (int): !strcmp(var + 7, "TNS")
pbx.c:1020:25: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1020:5: Return value (type int) ignored: snprintf(workspa...
pbx.c:1026:19: Operand of ! is non-boolean (int): !strcmp(var, "DNID")
pbx.c:1026:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "DNID")
pbx.c:1028:49: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 workspacelen
pbx.c:1032:19: Operand of ! is non-boolean (int): !strcmp(var, "HINT")
pbx.c:1032:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "HINT")
pbx.c:1033:47: Null storage passed as non-null param:
                 opbx_get_hint (..., NULL, ...)
pbx.c:1033:8: Operand of ! is non-boolean (int):
   !opbx_get_hint(workspace, workspacelen, NULL, 0, c, c->context, c->exten)
pbx.c:1037:19: Operand of ! is non-boolean (int): !strcmp(var, "HINTNAME")
pbx.c:1037:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "HINTNAME")
pbx.c:1038:22: Null storage passed as non-null param: opbx_get_hint (NULL, ...)
pbx.c:1038:8: Operand of ! is non-boolean (int):
   !opbx_get_hint(NULL, 0, workspace, workspacelen, c, c->context, c->exten)
pbx.c:1042:19: Operand of ! is non-boolean (int): !strcmp(var, "EXTEN")
pbx.c:1042:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "EXTEN")
pbx.c:1043:41: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 workspacelen
pbx.c:1045:19: Operand of ! is non-boolean (int): !strcmp(var, "RDNIS")
pbx.c:1045:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "RDNIS")
pbx.c:1047:50: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 workspacelen
pbx.c:1051:19: Operand of ! is non-boolean (int): !strcmp(var, "CONTEXT")
pbx.c:1051:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "CONTEXT")
pbx.c:1052:43: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 workspacelen
pbx.c:1054:19: Operand of ! is non-boolean (int): !strcmp(var, "PRIORITY")
pbx.c:1054:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "PRIORITY")
pbx.c:1055:23: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1055:3: Return value (type int) ignored: snprintf(workspa...
pbx.c:1057:19: Operand of ! is non-boolean (int): !strcmp(var, "CHANNEL")
pbx.c:1057:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "CHANNEL")
pbx.c:1058:40: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 workspacelen
pbx.c:1060:14: Operand of ! is non-boolean (int): !strcmp(var, "EPOCH")
pbx.c:1061:23: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1061:42: Format argument 1 to snprintf (%u) expects unsigned int gets
                 int: (int)time(NULL)
 To ignore signs in type comparisons use +ignoresigns
  pbx.c:1061:39: Corresponding format code
pbx.c:1061:3: Return value (type int) ignored: snprintf(workspa...
pbx.c:1063:14: Operand of ! is non-boolean (int): !strcmp(var, "DATETIME")
pbx.c:1065:3: Unrecognized identifier: localtime_r
pbx.c:1068:4: Field brokentime.tm_mon used before definition
pbx.c:1069:4: Field brokentime.tm_year used before definition
pbx.c:1066:23: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1067:4: Field brokentime.tm_mday used before definition
pbx.c:1070:4: Field brokentime.tm_hour used before definition
pbx.c:1071:4: Field brokentime.tm_min used before definition
pbx.c:1072:4: Field brokentime.tm_sec used before definition
pbx.c:1066:3: Return value (type int) ignored: snprintf(workspa...
pbx.c:1075:14: Operand of ! is non-boolean (int): !strcmp(var, "TIMESTAMP")
pbx.c:1080:4: Field brokentime.tm_year used before definition
pbx.c:1081:4: Field brokentime.tm_mon used before definition
pbx.c:1079:23: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1082:4: Field brokentime.tm_mday used before definition
pbx.c:1083:4: Field brokentime.tm_hour used before definition
pbx.c:1084:4: Field brokentime.tm_min used before definition
pbx.c:1085:4: Field brokentime.tm_sec used before definition
pbx.c:1079:3: Return value (type int) ignored: snprintf(workspa...
pbx.c:1088:19: Operand of ! is non-boolean (int): !strcmp(var, "UNIQUEID")
pbx.c:1088:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "UNIQUEID")
pbx.c:1089:23: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1089:3: Return value (type int) ignored: snprintf(workspa...
pbx.c:1091:19: Operand of ! is non-boolean (int): !strcmp(var, "HANGUPCAUSE")
pbx.c:1091:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "HANGUPCAUSE")
pbx.c:1092:23: Function snprintf expects arg 2 to be size_t gets int:
                 workspacelen
pbx.c:1092:3: Return value (type int) ignored: snprintf(workspa...
pbx.c:1094:19: Operand of ! is non-boolean (int): !strcmp(var, "ACCOUNTCODE")
pbx.c:1094:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "ACCOUNTCODE")
pbx.c:1095:47: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 workspacelen
pbx.c:1097:19: Operand of ! is non-boolean (int): !strcmp(var, "LANGUAGE")
pbx.c:1097:13: Left operand of && is non-boolean (struct opbx_channel *):
                 c && !strcmp(var, "LANGUAGE")
pbx.c:1098:44: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 workspacelen
pbx.c:1110:41: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 workspacelen
pbx.c:1111:7: Fresh storage *ret (type char *) not released before assignment:
                *ret = workspace
  pbx.c:1108:6: Fresh storage *ret created
pbx.c:1126:41: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 workspacelen
pbx.c:1132:2: Clauses exit with var referencing stack storage in true branch,
                implicitly temp storage in false branch
 The state of a variable is different depending on which branch is taken. This
 means no annotation can sensibly be applied to the storage. (Use -branchstate
 to inhibit warning)
  pbx.c:928:3: Storage var becomes stack-allocated storage
pbx.c:1133:2: Function returns with null storage derivable from parameter *ret
  pbx.c:925:7: Storage *ret becomes null
pbx.c: (in function handle_show_functions)
pbx.c:1135:46: Parameter argc not used
 A function parameter is not used in the body of the function. If the argument
 is needed for type compatibility or future plans, use /*@unused@*/ in the
 argument declaration. (Use -paramuse to inhibit warning)
pbx.c:1135:58: Parameter argv not used
pbx.c: (in function handle_show_function)
pbx.c:1167:3: Assignment of arbitrary unsigned integral type to int:
                synopsis_size = strlen(acf->synopsis) + 23
pbx.c:1169:3: Assignment of arbitrary unsigned integral type to int:
                synopsis_size = strlen("Not available") + 23
pbx.c:1170:13: Unrecognized identifier: alloca
pbx.c:1173:3: Assignment of arbitrary unsigned integral type to int:
                description_size = strlen(acf->desc) + 23
pbx.c:1175:3: Assignment of arbitrary unsigned integral type to int:
                description_size = strlen("Not available") + 23
pbx.c:1179:3: Assignment of arbitrary unsigned integral type to int:
                syntax_size = strlen(acf->syntax) + 23
pbx.c:1181:3: Assignment of arbitrary unsigned integral type to int:
                syntax_size = strlen("Not available") + 23
pbx.c:1184:2: Return value (type int) ignored: snprintf(info, 6...
pbx.c:1185:13: Passed storage infotitle not completely defined (*infotitle is
                 undefined): term_color (infotitle, ...)
pbx.c:1185:2: Return value (type char *) ignored: term_color(infot...
pbx.c:1186:13: Passed storage stxtitle not completely defined (*stxtitle is
                 undefined): term_color (stxtitle, ...)
pbx.c:1186:2: Return value (type char *) ignored: term_color(stxti...
pbx.c:1187:13: Passed storage syntitle not completely defined (*syntitle is
                 undefined): term_color (syntitle, ...)
pbx.c:1187:2: Return value (type char *) ignored: term_color(synti...
pbx.c:1188:13: Passed storage destitle not completely defined (*destitle is
                 undefined): term_color (destitle, ...)
pbx.c:1188:2: Return value (type char *) ignored: term_color(desti...
pbx.c:1189:2: Return value (type char *) ignored: term_color(synta...
pbx.c:1192:2: Return value (type char *) ignored: term_color(synop...
pbx.c:1195:2: Return value (type char *) ignored: term_color(descr...
pbx.c:1201:11: Fresh storage acf not released before return
  pbx.c:1160:8: Fresh storage acf created
pbx.c: (in function complete_show_function)
pbx.c:1210:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&acflock)
pbx.c:1219:17: Unrecognized identifier: strdup
pbx.c:1220:5: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1227:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1204:43: Parameter line not used
pbx.c:1204:65: Parameter pos not used
pbx.c: (in function opbx_custom_function_find)
pbx.c:1236:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&acflock)
pbx.c:1242:8: Operand of ! is non-boolean (int): !strcmp(name, acfptr->name)
pbx.c:1247:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1249:16: Function returns with global acf_root referencing released
                 storage
  pbx.c:1249:9: Storage acf_root released
pbx.c: (in function opbx_custom_function_unregister)
pbx.c:1261:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&acflock)
pbx.c:1269:5: Implicitly only storage lastacf->next (type struct
   opbx_custom_function *) not released before assignment:
   lastacf->next = acf->next
pbx.c:1271:5: Only storage acf->next assigned to unqualified static:
                acf_root = acf->next
pbx.c:1272:4: Clauses exit with acf->next referencing kept storage in true
                branch, implicitly only storage in false branch
  pbx.c:1269:5: Storage acf->next becomes kept
pbx.c:1279:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1281:7: Operand of ! is non-boolean (int): !res
pbx.c: (in function opbx_custom_function_register)
pbx.c:1293:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&acflock)
pbx.c:1300:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1304:2: Implicitly only storage acf->next (type struct
   opbx_custom_function *) not released before assignment: acf->next = acf_root
pbx.c:1304:2: Unqualified static storage acf_root assigned to implicitly only:
                acf->next = acf_root
 Static storage is transferred in an inconsistent way. (Use -statictrans to
 inhibit warning)
pbx.c:1307:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_func_read)
pbx.c:1321:13: Unrecognized identifier: opbx_strdupa
pbx.c:1324:10: Observer storage ret returned without qualification: ret
 Observer storage is transferred to a non-observer reference. (Use
 -observertrans to inhibit warning)
  pbx.c:1318:14: Storage ret becomes observer
pbx.c:1341:62: Fresh storage acfptr not released before return
  pbx.c:1338:7: Fresh storage acfptr created
pbx.c:1348:9: Observer storage ret returned without qualification: ret
  pbx.c:1318:14: Storage ret becomes observer
pbx.c:1348:13: Fresh storage acfptr not released before return
  pbx.c:1338:7: Fresh storage acfptr created
pbx.c: (in function opbx_func_write)
pbx.c:1383:2: Fresh storage acfptr not released before return
  pbx.c:1373:7: Fresh storage acfptr created
pbx.c: (in function pbx_substitute_variables_helper_full)
pbx.c:1399:9: Operand of ! is non-boolean (int): !opbx_strlen_zero(whereweare)
pbx.c:1399:41: Right operand of && is non-boolean (int):
                 !opbx_strlen_zero(whereweare) && count
pbx.c:1401:3: Assignment of size_t to int: pos = strlen(whereweare)
pbx.c:1418:7: Test expression for if not boolean, type int: pos
pbx.c:1424:28: Function memcpy expects arg 3 to be size_t gets int: pos
pbx.c:1424:11: Parameter 1 (cp2) to function memcpy is declared unique but may
                 be aliased externally by parameter 2 (whereweare)
 A unique or only parameter may be aliased by some other parameter or visible
 global. (Use -mayaliasunique to inhibit warning)
pbx.c:1440:10: Operands of && are non-booleans (int, char): brackets && *vare
pbx.c:1450:8: Test expression for if not boolean, type int: brackets
pbx.c:1461:32: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 len + 1
pbx.c:1464:8: Test expression for if not boolean, type int: needsub
pbx.c:1487:36: Passed storage &cp4 not completely defined:
                 pbx_retrieve_variable (..., &cp4, ...)
pbx.c:1488:4: Clauses exit with cp4 referencing fresh storage in true branch,
                local storage in false branch
  pbx.c:1482:5: Fresh storage cp4 created
pbx.c:1490:5: Assignment of size_t to int: length = strlen(cp4)
pbx.c:1493:22: Function memcpy expects arg 3 to be size_t gets int: length
pbx.c:1506:10: Operands of && are non-booleans (int, char): brackets && *vare
pbx.c:1521:8: Test expression for if not boolean, type int: brackets
pbx.c:1532:32: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 len + 1
pbx.c:1535:8: Test expression for if not boolean, type int: needsub
pbx.c:1548:8: Test expression for if not boolean, type int: length
pbx.c: (in function pbx_substitute_variables)
pbx.c:1570:22: Function memset expects arg 3 to be size_t gets int: datalen
pbx.c:1574:39: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 datalen
pbx.c: (in function pbx_extension_helper)
pbx.c:1600:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&conlock)
pbx.c:1607:84: Passed storage incstack not completely defined (*incstack is
                 undefined): pbx_find_extension (..., incstack, ...)
pbx.c:1607:114: Passed storage &sw not completely defined:
                  pbx_find_extension (..., &sw, ...)
pbx.c:1607:119: Passed storage &data not completely defined:
                  pbx_find_extension (..., &data, ...)
pbx.c:1611:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1612:14: Fresh storage e not released before return
  pbx.c:1607:2: Fresh storage e created
pbx.c:1614:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1615:14: Fresh storage e not released before return
  pbx.c:1607:2: Fresh storage e created
pbx.c:1618:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1619:15: Fresh storage e not released before return
  pbx.c:1607:2: Fresh storage e created
pbx.c:1621:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1622:14: Fresh storage e not released before return
  pbx.c:1607:2: Fresh storage e created
pbx.c:1626:8: Fall through case (no preceding break)
 Execution falls through from the previous case. (Use -casebreak to inhibit
 warning)
pbx.c:1628:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1635:46: Function pbx_substitute_variables expects arg 2 to be int gets
                 size_t: sizeof((passdata))
pbx.c:1635:30: Passed storage passdata not completely defined (*passdata is
                 undefined): pbx_substitute_variables (passdata, ...)
pbx.c:1636:9: Test expression for if not boolean, type int: option_debug
pbx.c:1638:7: Return value (type int) ignored: snprintf(atmp, 8...
pbx.c:1639:81: Operand of ! is non-boolean (int): !opbx_strlen_zero(passdata)
pbx.c:1639:135: Test expression for conditional not boolean, type int: newstack
pbx.c:1639:7: Return value (type int) ignored: snprintf(atmp2, ...
pbx.c:1644:55: Function term_color expects arg 5 to be int gets size_t:
                 sizeof((tmp))
pbx.c:1644:20: Passed storage tmp not completely defined (*tmp is undefined):
                 term_color (tmp, ...)
pbx.c:1645:54: Function term_color expects arg 5 to be int gets size_t:
                 sizeof((tmp2))
pbx.c:1645:20: Passed storage tmp2 not completely defined (*tmp2 is undefined):
                 term_color (tmp2, ...)
pbx.c:1646:28: Operand of ! is non-boolean (int): !opbx_strlen_zero(passdata)
pbx.c:1646:100: Function term_color expects arg 5 to be int gets size_t:
                  sizeof((tmp3))
pbx.c:1646:20: Passed storage tmp3 not completely defined (*tmp3 is undefined):
                 term_color (tmp3, ...)
pbx.c:1647:10: Test expression for conditional not boolean, type int: newstack
pbx.c:1656:61: Test expression for conditional not boolean, type char [8192]:
                 passdata
 Test expression type is not boolean. (Use -predboolothers to inhibit warning)
pbx.c:1648:5: Return value (type int) ignored: manager_event((1...
pbx.c:1658:16: Fresh storage e not released before return
  pbx.c:1607:2: Fresh storage e created
pbx.c:1658:16: Fresh storage app not released before return
  pbx.c:1627:4: Fresh storage app created
pbx.c:1661:15: Fresh storage e not released before return
  pbx.c:1607:2: Fresh storage e created
pbx.c:1664:112: Fresh storage e not released before return
  pbx.c:1607:2: Fresh storage e created
pbx.c:1669:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1672:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1675:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1678:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1683:8: Fall through case (no preceding break)
pbx.c:1684:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1697:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_hint_extension)
pbx.c:1738:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&conlock)
pbx.c:1742:68: Passed storage incstack not completely defined (*incstack is
                 undefined): pbx_find_extension (..., incstack, ...)
pbx.c:1742:98: Passed storage &sw not completely defined:
                 pbx_find_extension (..., &sw, ...)
pbx.c:1742:103: Passed storage &data not completely defined:
                  pbx_find_extension (..., &data, ...)
pbx.c:1743:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_extension_state2)
pbx.c:1759:25: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_extension_app(e)
pbx.c:1765:4: Assignment of int to char: *rest = 0
pbx.c:1803:7: Operand of ! is non-boolean (int): !inuse
pbx.c:1803:16: Right operand of && is non-boolean (int): !inuse && ring
pbx.c:1805:6: Operands of && are non-boolean (int): inuse && ring
pbx.c:1807:6: Test expression for if not boolean, type int: inuse
pbx.c:1809:6: Test expression for if not boolean, type int: allfree
pbx.c:1811:6: Test expression for if not boolean, type int: allbusy
pbx.c:1813:6: Test expression for if not boolean, type int: allunavailable
pbx.c:1815:6: Test expression for if not boolean, type int: busy
pbx.c: (in function opbx_extension_state2str)
pbx.c:1826:15: Operands of < have incompatible types (int, arbitrary unsigned
   integral type): i < (sizeof((extension_states)) / sizeof((extension_states[0
   ])))
pbx.c:1828:36: Released storage extension_states[].text reachable from global
  pbx.c:1828:11: Storage extension_states[].text released
pbx.c:1831:9: Observer storage returned without qualification: "Unknown"
  pbx.c:1831:9: Storage becomes observer
pbx.c: (in function opbx_extension_state)
pbx.c:1843:34: Fresh storage e not released before return
  pbx.c:1839:2: Fresh storage e created
pbx.c: (in function opbx_hint_state_changed)
pbx.c:1855:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:1858:20: Passed storage buf not completely defined (*buf is undefined):
                 opbx_copy_string (buf, ...)
pbx.c:1858:25: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_extension_app(hint->exten)
pbx.c:1860:14: Unrecognized identifier: strsep
pbx.c:1861:8: Test expression for if not boolean, type int: strcmp(cur, device)
pbx.c:1874:5: Return value (type int) ignored: cblist->callback...
pbx.c:1878:5: Return value (type int) ignored: cblist->callback...
pbx.c:1885:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_extension_state_add)
pbx.c:1898:3: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:1903:5: Implicitly only storage cblist->data (type void *) not released
                before assignment: cblist->data = data
pbx.c:1903:5: Implicitly temp storage data assigned to implicitly only:
                cblist->data = data
pbx.c:1904:5: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1913:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1919:3: Implicitly only storage cblist->data (type void *) not released
                before assignment: cblist->data = data
pbx.c:1919:3: Implicitly temp storage data assigned to implicitly only:
                cblist->data = data
pbx.c:1921:3: Implicitly only storage cblist->next (type struct opbx_state_cb
                *) not released before assignment: cblist->next = statecbs
pbx.c:1921:3: Unqualified storage statecbs assigned to implicitly only:
                cblist->next = statecbs
pbx.c:1924:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1938:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:1949:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1950:13: Fresh storage e not released before return
  pbx.c:1932:2: Fresh storage e created
pbx.c:1956:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1957:13: Fresh storage e not released before return
  pbx.c:1932:2: Fresh storage e created
pbx.c:1962:2: Implicitly only storage cblist->data (type void *) not released
                before assignment: cblist->data = data
pbx.c:1962:2: Implicitly temp storage data assigned to implicitly only:
                cblist->data = data
pbx.c:1964:2: Implicitly only storage cblist->next (type struct opbx_state_cb
   *) not released before assignment: cblist->next = list->callbacks
pbx.c:1967:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1968:20: Fresh storage e not released before return
  pbx.c:1932:2: Fresh storage e created
pbx.c: (in function opbx_extension_state_del)
pbx.c:1977:7: Operand of ! is non-boolean (int): !id
pbx.c:1980:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:1983:7: Operand of ! is non-boolean (int): !id
pbx.c:1989:10: Only storage cblist->next assigned to unqualified:
                 statecbs = cblist->next
pbx.c:1991:10: Implicitly only storage cbprev->next (type struct opbx_state_cb
   *) not released before assignment: cbprev->next = cblist->next
pbx.c:1991:10: Storage cblist->next is kept in one path, but live in another.
  pbx.c:1991:10: Storage cblist->next becomes kept
pbx.c:1991:10: Storage statecbs->next is kept in one path, but live in another.
  pbx.c:1991:10: Storage statecbs->next becomes kept
pbx.c:1993:10: Only storage cblist->data (type void *) derived from released
                 storage is not released (memory leak): cblist
 A storage leak due to incomplete deallocation of a structure or deep pointer
 is suspected. Unshared storage that is reachable from a reference that is
 being deallocated has not yet been deallocated. Splint assumes when an object
 is passed as an out only void pointer that the outer object will be
 deallocated, but the inner objects will not. (Use -compdestroy to inhibit
 warning)
pbx.c:1993:10: Only storage cblist->callback (type opbx_state_cb_type) derived
                 from released storage is not released (memory leak): cblist
pbx.c:1995:12: Return value (type int) ignored: pthread_mutex_un...
pbx.c:1996:14: Function returns with global statecbs referencing released
                 storage
  pbx.c:1993:10: Storage statecbs released
pbx.c:2002:3: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:2017:10: Implicitly only storage cbprev->next (type struct opbx_state_cb
   *) not released before assignment: cbprev->next = cblist->next
pbx.c:2017:10: Clauses exit with cblist referencing implicitly only storage in
                 true branch, local storage in false branch
  pbx.c:2015:10: Storage cblist becomes implicitly only (through alias
  list->callbacks)
pbx.c:2017:10: Storage list->callbacks->next is kept in one path, but live in
                 another.
  pbx.c:2017:10: Storage list->callbacks->next becomes kept
pbx.c:2017:10: Storage hints->callbacks->next is kept in one path, but live in
                 another.
  pbx.c:2017:10: Storage hints->callbacks->next becomes kept
pbx.c:2021:5: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2022:14: Released storage hints->callbacks reachable from global
  pbx.c:2019:10: Storage hints->callbacks released
pbx.c:2030:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_add_hint)
pbx.c:2042:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:2048:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2061:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2068:2: Implicitly only storage list->exten (type struct opbx_exten *)
                not released before assignment: list->exten = e
pbx.c:2068:2: Implicitly temp storage e assigned to implicitly only:
                list->exten = e
pbx.c:2070:2: Implicitly only storage list->next (type struct opbx_hint *) not
                released before assignment: list->next = hints
pbx.c:2070:2: Unqualified storage hints assigned to implicitly only:
                list->next = hints
pbx.c:2073:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_change_hint)
pbx.c:2082:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:2087:8: Implicitly only storage list->exten (type struct opbx_exten *)
                not released before assignment: list->exten = ne
pbx.c:2087:8: Implicitly temp storage ne assigned to implicitly only:
                list->exten = ne
pbx.c:2088:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2093:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_remove_hint)
pbx.c:2108:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:2119:5: Return value (type int) ignored: cbprev->callback...
pbx.c:2120:10: Only storage cbprev->data (type void *) derived from released
                 storage is not released (memory leak): cbprev
pbx.c:2120:10: Only storage cbprev->callback (type opbx_state_cb_type) derived
                 from released storage is not released (memory leak): cbprev
pbx.c:2120:10: Only storage cbprev->next (type struct opbx_state_cb *) derived
                 from released storage is not released (memory leak): cbprev
pbx.c:2125:5: Only storage list->next assigned to unqualified:
                hints = list->next
pbx.c:2127:5: Implicitly only storage prev->next (type struct opbx_hint *) not
                released before assignment: prev->next = list->next
pbx.c:2127:5: Storage hints->next is kept in one path, but live in another.
  pbx.c:2127:5: Storage hints->next becomes kept
pbx.c:2128:13: Only storage list->exten (type struct opbx_exten *) derived from
                 released storage is not released (memory leak): list
pbx.c:2128:13: Only storage list->callbacks (type struct opbx_state_cb *)
   derived from released storage is not released (memory leak): list
pbx.c:2130:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2131:13: Function returns with global hints referencing released storage
  pbx.c:2128:13: Storage hints released
pbx.c:2138:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_get_hint)
pbx.c:2152:57: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 hintsize
pbx.c:2152:30: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_extension_app(e)
pbx.c:2156:42: Function opbx_copy_string expects arg 3 to be size_t gets int:
                 namesize
pbx.c:2158:16: Fresh storage e not released before return
  pbx.c:2149:2: Fresh storage e created
pbx.c:2158:16: Fresh storage tmp not released before return
  pbx.c:2154:4: Fresh storage tmp created
pbx.c: (in function __opbx_pbx_run)
pbx.c:2211:2: Implicitly only storage c->pbx (type struct opbx_pbx *) not
   released before assignment: c->pbx = malloc(sizeof(struct opbx_pbx))
pbx.c:2214:13: Function returns with possibly null storage derivable from
                 parameter c->pbx
  pbx.c:2211:11: Storage c->pbx may become null
pbx.c:2214:13: Storage *(c->pbx) reachable from parameter contains 2 undefined
                 fields: dtimeout, rtimeout
pbx.c:2216:6: Test expression for if not boolean, type int: c->amaflags
pbx.c:2222:15: Released storage c->pbx reachable from parameter at return point
  pbx.c:2221:10: Storage c->pbx released
pbx.c:2224:26: Passed storage *(c->pbx) contains 2 undefined fields:
                 dtimeout, rtimeout
pbx.c:2224:4: Return value (type int) ignored: opbx_cdr_init(c-...
pbx.c:2232:2: Assignment of unsigned int to int: autoloopflag = ({ <error>;
   unsigned int __p = (c)->flags; <error>; unsigned int __x = 0;
   (void)(&__p == &__x); ((c)->flags & ((1 << 9))); })
pbx.c:2233:105: Statement has no effect: (void)(&__p == &__x)
 Statement has no visible effect --- no values are modified. (Use -noeffect to
 inhibit warning)
pbx.c:2236:7: Operand of ! is non-boolean (int):
   !opbx_exists_extension(c, c->context, c->exten, c->priority, c->cid.cid_num)
pbx.c:2241:8: Operand of ! is non-boolean (int):
   !opbx_exists_extension(c, c->context, c->exten, c->priority, c->cid.cid_num)
pbx.c:2249:17: Operand of ! is non-boolean (struct timeval):
                 !c->cdr->start.tv_sec
pbx.c:2249:6: Left operand of && is non-boolean (struct opbx_cdr *):
                c->cdr && !c->cdr->start.tv_sec
pbx.c:2249:42: Operand of ! is non-boolean (struct timeval):
                 !c->cdr->start.tv_usec
pbx.c:2254:31: Possibly null storage c->cdr derivable from parameter
                 opbx_exists_extension (c, ...)
pbx.c:2254:9: Test expression for while not boolean, type int:
   opbx_exists_extension(c, c->context, c->exten, c->priority, c->cid.cid_num)
pbx.c:2256:8: Test expression for if not boolean, type int:
                (res = opbx_spawn_extension(c, c->context, c->exten,
                c->priority, c->cid.cid_num))
pbx.c:2258:11: Operands of >= have incompatible types (int, char): res >= '0'
 A character constant is used as an int. Use +charintliteral to allow
 character constants to be used as ints.  (This is safe since the actual type
 of a char constant is int.)
pbx.c:2258:27: Operands of <= have incompatible types (int, char): res <= '9'
pbx.c:2258:45: Operands of >= have incompatible types (int, char): res >= 'A'
pbx.c:2258:61: Operands of <= have incompatible types (int, char): res <= 'F'
pbx.c:2259:7: Operands of == have incompatible types (int, char): res == '*'
pbx.c:2259:23: Operands of == have incompatible types (int, char): res == '#'
pbx.c:2263:6: Assignment of int to char: exten[pos++] = digit = res
pbx.c:2268:10: Test expression for if not boolean, type int: option_debug
pbx.c:2273:6: Unreachable code: break
 This code will never be reached on any possible execution. (Use -unreachable
 to inhibit warning)
pbx.c:2275:10: Test expression for if not boolean, type int: option_debug
pbx.c:2289:7: Return value (type int) ignored: opbx_cdr_update(c)
pbx.c:2294:40: Right operand of && is non-boolean (int):
   (c->_softhangup == (1 << 3)) && (opbx_exists_extension(c, c->context, "T",
   1, c->cid.cid_num))
pbx.c:2300:15: Test expression for if not boolean, type int: c->_softhangup
pbx.c:2308:8: Operand of ! is non-boolean (int):
   !opbx_exists_extension(c, c->context, c->exten, 1, c->cid.cid_num)
pbx.c:2310:8: Test expression for if not boolean, type int:
                opbx_exists_extension(c, c->context, "i", 1, c->cid.cid_num)
pbx.c:2327:8: Test expression for if not boolean, type int: digit
pbx.c:2329:14: Operand of ! is non-boolean (int): !autofallthrough
pbx.c:2331:8: Test expression for if not boolean, type int: waittime
pbx.c:2332:52: Passed storage exten not completely defined (*exten is
                 undefined): opbx_matchmore_extension (..., exten, ...)
pbx.c:2332:12: Test expression for while not boolean, type int:
   opbx_matchmore_extension(c, c->context, exten, 1, c->cid.cid_num)
pbx.c:2339:12: Operand of ! is non-boolean (int): !digit
pbx.c:2345:7: Assignment of int to char: exten[pos++] = digit
pbx.c:2349:9: Test expression for if not boolean, type int:
                opbx_exists_extension(c, c->context, exten, 1, c->cid.cid_num)
pbx.c:2355:11: Operand of ! is non-boolean (int): !opbx_strlen_zero(exten)
pbx.c:2357:11: Test expression for if not boolean, type int:
                 opbx_exists_extension(c, c->context, "i", 1, c->cid.cid_num)
pbx.c:2369:11: Test expression for if not boolean, type int:
                 opbx_exists_extension(c, c->context, "t", 1, c->cid.cid_num)
pbx.c:2383:6: Return value (type int) ignored: opbx_cdr_update(c)
pbx.c:2390:6: Clauses exit with status referencing unqualified static storage
                in true branch, fresh storage in continuation
  pbx.c:2388:5: Fresh storage status created
  pbx.c:2390:6: Storage status becomes static
pbx.c:2403:6: Test expression for if not boolean, type int: firstpass
pbx.c:2406:43: Possibly null storage c->cdr derivable from parameter
                 opbx_exists_extension (c, ...)
pbx.c:2406:21: Right operand of && is non-boolean (int):
   (res != 10) && opbx_exists_extension(c, c->context, "h", 1, c->cid.cid_num)
pbx.c:2410:31: Possibly null storage c->cdr derivable from parameter
                 opbx_exists_extension (c, ...)
pbx.c:2410:9: Test expression for while not boolean, type int:
   opbx_exists_extension(c, c->context, c->exten, c->priority, c->cid.cid_num)
pbx.c:2411:8: Test expression for if not boolean, type int:
                (res = opbx_spawn_extension(c, c->context, c->exten,
                c->priority, c->cid.cid_num))
pbx.c:2413:9: Test expression for if not boolean, type int: option_debug
pbx.c:2422:105: Statement has no effect: (void)(&__p == &__x)
pbx.c:2422:138: Test expression for if not boolean, type int: autoloopflag
pbx.c:2425:2: Implicitly only storage c->pbx (type struct opbx_pbx *) not
                released before assignment: c->pbx = NULL
pbx.c:2427:15: Possibly null storage c->cdr derivable from parameter
                 opbx_hangup (c)
pbx.c:2427:3: Return value (type int) ignored: opbx_hangup(c)
pbx.c: (in function increase_call_count)
pbx.c:2436:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:2437:6: Test expression for if not boolean, type int: option_maxcalls
pbx.c:2443:7: Operand of ! is non-boolean (int): !failed
pbx.c:2445:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function decrease_call_count)
pbx.c:2452:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:2455:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function pbx_thread)
pbx.c:2470:2: Return value (type int) ignored: __opbx_pbx_run(c)
pbx.c: (in function opbx_pbx_start)
pbx.c:2488:6: Test expression for if not boolean, type int:
                increase_call_count(c)
pbx.c:2492:20: Passed storage attr.__schedparam contains 1 undefined field:
                 __sched_priority
pbx.c:2492:20: Passed storage attr contains 8 undefined fields:
                 __detachstate, __schedpolicy, __inheritsched, __scope, ...
pbx.c:2492:2: Return value (type int) ignored: pthread_attr_ini...
pbx.c:2493:2: Return value (type int) ignored: pthread_attr_set...
pbx.c:2494:32: Passed storage &t not completely defined:
                 opbx_pthread_create_stack (&t, ...)
pbx.c:2494:6: Test expression for if not boolean, type int:
                opbx_pthread_create_stack(&t, &attr, pbx_thread, c, 0)
pbx.c:2496:26: Only storage attr.__stackaddr (type void *) derived from
                 variable declared in this scope is not released (memory leak)
pbx.c:2499:26: Only storage attr.__stackaddr (type void *) derived from
                 variable declared in this scope is not released (memory leak)
pbx.c: (in function opbx_pbx_run)
pbx.c:2506:6: Test expression for if not boolean, type int:
                increase_call_count(c)
pbx.c: (in function opbx_context_remove_include)
pbx.c:2538:6: Test expression for if not boolean, type int:
                opbx_lock_contexts()
pbx.c:2544:15: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_context_name(c)
pbx.c:2544:8: Operand of ! is non-boolean (int):
                !strcmp(opbx_get_context_name(c), context)
pbx.c:2549:4: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:2552:15: Fresh storage c not released before return
  pbx.c:2541:2: Fresh storage c created
pbx.c:2554:3: Fresh storage c (type struct opbx_context *) not released before
                assignment: c = opbx_walk_contexts(c)
  pbx.c:2541:2: Fresh storage c created
pbx.c:2558:2: Return value (type int) ignored: opbx_unlock_cont...
pbx.c: (in function opbx_context_remove_include2)
pbx.c:2574:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&con->lock)
pbx.c:2580:8: Operand of ! is non-boolean (int): !strcmp(i->name, include)
pbx.c:2581:20: Operand of ! is non-boolean (int):
                 !strcmp(i->registrar, registrar)
pbx.c:2584:5: Implicitly only storage pi->next (type struct opbx_include *) not
                released before assignment: pi->next = i->next
pbx.c:2586:5: Storage con->includes->next is kept in one path, but live in
                another.
  pbx.c:2584:5: Storage con->includes->next becomes kept
pbx.c:2586:5: Clauses exit with i referencing local storage in true branch,
                implicitly only storage in false branch
  pbx.c:2586:5: Storage i becomes implicitly only (through alias
  con->includes)
pbx.c:2586:5: Clauses exit with con->includes->next referencing kept storage in
                true branch, implicitly only storage in false branch
  pbx.c:2584:5: Storage con->includes->next becomes kept
pbx.c:2589:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2590:13: Released storage con->includes reachable from parameter at
                 return point
  pbx.c:2588:9: Storage con->includes released
pbx.c:2597:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_context_remove_switch)
pbx.c:2610:6: Test expression for if not boolean, type int:
                opbx_lock_contexts()
pbx.c:2616:15: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_context_name(c)
pbx.c:2616:8: Operand of ! is non-boolean (int):
                !strcmp(opbx_get_context_name(c), context)
pbx.c:2621:4: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:2624:15: Fresh storage c not released before return
  pbx.c:2613:2: Fresh storage c created
pbx.c:2626:3: Fresh storage c (type struct opbx_context *) not released before
                assignment: c = opbx_walk_contexts(c)
  pbx.c:2613:2: Fresh storage c created
pbx.c:2630:2: Return value (type int) ignored: opbx_unlock_cont...
pbx.c: (in function opbx_context_remove_switch2)
pbx.c:2646:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&con->lock)
pbx.c:2652:8: Operand of ! is non-boolean (int): !strcmp(i->name, sw)
pbx.c:2652:32: Operand of ! is non-boolean (int): !strcmp(i->data, data)
pbx.c:2653:20: Operand of ! is non-boolean (int):
                 !strcmp(i->registrar, registrar)
pbx.c:2656:5: Implicitly only storage pi->next (type struct opbx_sw *) not
                released before assignment: pi->next = i->next
pbx.c:2658:5: Storage con->alts->next is kept in one path, but live in another.
  pbx.c:2656:5: Storage con->alts->next becomes kept
pbx.c:2658:5: Clauses exit with i referencing local storage in true branch,
                implicitly only storage in false branch
  pbx.c:2658:5: Storage i becomes implicitly only (through alias con->alts)
pbx.c:2658:5: Clauses exit with con->alts->next referencing kept storage in
                true branch, implicitly only storage in false branch
  pbx.c:2656:5: Storage con->alts->next becomes kept
pbx.c:2661:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2662:13: Released storage con->alts reachable from parameter at return
                 point
  pbx.c:2660:9: Storage con->alts released
pbx.c:2669:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_context_remove_extension)
pbx.c:2682:6: Test expression for if not boolean, type int:
                opbx_lock_contexts()
pbx.c:2688:15: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_context_name(c)
pbx.c:2688:8: Operand of ! is non-boolean (int):
                !strcmp(opbx_get_context_name(c), context)
pbx.c:2693:4: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:2694:15: Fresh storage c not released before return
  pbx.c:2685:2: Fresh storage c created
pbx.c:2696:3: Fresh storage c (type struct opbx_context *) not released before
                assignment: c = opbx_walk_contexts(c)
  pbx.c:2685:2: Fresh storage c created
pbx.c:2700:2: Return value (type int) ignored: opbx_unlock_cont...
pbx.c: (in function opbx_context_remove_extension2)
pbx.c:2718:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&con->lock)
pbx.c:2725:8: Operand of ! is non-boolean (int):
                !strcmp(exten->exten, extension)
pbx.c:2726:20: Operand of ! is non-boolean (int):
                 !strcmp(exten->registrar, registrar)
pbx.c:2733:6: Implicitly only storage prev_exten->next (type struct opbx_exten
   *) not released before assignment: prev_exten->next = exten->next
pbx.c:2735:6: Storage con->root->next is kept in one path, but live in another.
  pbx.c:2733:6: Storage con->root->next becomes kept
pbx.c:2735:6: Clauses exit with exten referencing local storage in true branch,
                implicitly only storage in false branch
  pbx.c:2735:6: Storage exten becomes implicitly only (through alias
  con->root)
pbx.c:2735:6: Clauses exit with con->root->next referencing kept storage in
                true branch, implicitly only storage in false branch
  pbx.c:2733:6: Storage con->root->next becomes kept
pbx.c:2742:11: Operand of ! is non-boolean (int): !peer->priority
pbx.c:2742:10: Operands of == have incompatible types (boolean, int):
                 !peer->priority == -1
pbx.c:2743:27: Storage peer->next reachable from passed parameter is kept
                 (should be implicitly only): peer
  pbx.c:2735:6: Storage peer->next becomes kept
pbx.c:2743:10: Return value (type int) ignored: opbx_remove_hint...
pbx.c:2746:11: Only storage peer->exten (type char *) derived from released
                 storage is not released (memory leak): peer
pbx.c:2746:11: Only storage peer->cidmatch (type char *) derived from released
                 storage is not released (memory leak): peer
pbx.c:2746:11: Only storage peer->label (type char *) derived from released
                 storage is not released (memory leak): peer
pbx.c:2746:11: Only storage peer->parent (type struct opbx_context *) derived
                 from released storage is not released (memory leak): peer
pbx.c:2746:11: Only storage peer->app (type char *) derived from released
                 storage is not released (memory leak): peer
pbx.c:2746:11: Only storage peer->data (type void *) derived from released
                 storage is not released (memory leak): peer
pbx.c:2746:11: Only storage peer->registrar (type char *) derived from released
                 storage is not released (memory leak): peer
pbx.c:2749:5: Clauses exit with exten referencing only storage in while body,
                local storage if loop is not taken
  pbx.c:2735:6: Storage exten becomes implicitly only (through alias
  con->root)
  pbx.c:2746:11: Storage exten becomes only
pbx.c:2751:5: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2752:14: Released storage con->root reachable from parameter at return
                 point
  pbx.c:2746:11: Storage con->root released
pbx.c:2761:23: Operand of ! is non-boolean (int):
                 !strcmp(peer->registrar, registrar)
pbx.c:2770:10: Implicitly only storage prev_exten->next (type struct opbx_exten
   *) not released before assignment: prev_exten->next = peer->peer
pbx.c:2773:10: Implicitly only storage prev_exten->next (type struct opbx_exten
   *) not released before assignment: prev_exten->next = exten->next
pbx.c:2773:10: Clauses exit with exten->peer referencing kept storage in true
                 branch, implicitly only storage in false branch
  pbx.c:2770:10: Storage exten->peer becomes kept
pbx.c:2773:10: Clauses exit with con->root->peer referencing kept storage in
                 true branch, implicitly only storage in false branch
  pbx.c:2770:10: Storage con->root->peer becomes kept
pbx.c:2781:10: Clauses exit with exten->peer referencing kept storage in true
                 branch, implicitly only storage in false branch
  pbx.c:2779:10: Storage exten->peer becomes kept
pbx.c:2781:10: Storage exten->next is kept in one path, but live in another.
  pbx.c:2781:10: Storage exten->next becomes kept
pbx.c:2781:10: Storage peer->next is kept in one path, but live in another.
  pbx.c:2781:10: Storage peer->next becomes kept
pbx.c:2782:8: Storage peer->next is kept in one path, but live in another.
  pbx.c:2773:10: Storage peer->next becomes kept
pbx.c:2782:8: Storage con->root->next is kept in one path, but live in another.
  pbx.c:2773:10: Storage con->root->next becomes kept
pbx.c:2782:8: Clauses exit with exten referencing local storage in true branch,
                implicitly only storage in false branch
  pbx.c:2781:10: Storage exten becomes implicitly only (through alias
  con->root)
pbx.c:2782:8: Clauses exit with con->root->next referencing kept storage in
                true branch, implicitly only storage in false branch
  pbx.c:2773:10: Storage con->root->next becomes kept
pbx.c:2785:8: Implicitly only storage previous_peer->peer (type struct
   opbx_exten *) not released before assignment:
   previous_peer->peer = peer->peer
pbx.c:2790:28: Possibly null storage peer->peer derivable from parameter
                 opbx_remove_hint (peer)
pbx.c:2790:11: Return value (type int) ignored: opbx_remove_hint...
pbx.c:2794:7: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2795:16: Released storage con->root reachable from parameter at return
                 point
  pbx.c:2792:12: Storage con->root released
pbx.c:2803:5: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2813:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_register_application)
pbx.c:2823:2: Assignment of size_t to int: length = sizeof(struct opbx_app)
pbx.c:2825:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&applock)
pbx.c:2833:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2838:15: Function malloc expects arg 1 to be size_t gets int: length
pbx.c:2840:18: Function memset expects arg 3 to be size_t gets int: length
pbx.c:2841:10: Parameter 1 (tmp->name) to function strcpy is declared unique
                 but may be aliased externally by parameter 2 (app)
pbx.c:2843:3: Implicitly only storage tmp->synopsis (type char *) not released
                before assignment: tmp->synopsis = synopsis
pbx.c:2843:3: Implicitly temp storage synopsis assigned to implicitly only:
                tmp->synopsis = synopsis
pbx.c:2844:3: Implicitly only storage tmp->description (type char *) not
                released before assignment: tmp->description = description
pbx.c:2844:3: Implicitly temp storage description assigned to implicitly only:
                tmp->description = description
pbx.c:2855:4: Implicitly only storage tmp->next (type struct opbx_app *) not
                released before assignment: tmp->next = prev->next
pbx.c:2858:4: Implicitly only storage tmp->next (type struct opbx_app *) not
                released before assignment: tmp->next = apps
pbx.c:2858:4: Unqualified static storage apps assigned to implicitly only:
                tmp->next = apps
pbx.c:2863:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2867:105: Function term_color expects arg 5 to be int gets size_t:
                  sizeof((tmps))
pbx.c:2867:69: Passed storage tmps not completely defined (*tmps is undefined):
                 term_color (tmps, ...)
pbx.c:2868:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_register_switch)
pbx.c:2875:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&switchlock)
pbx.c:2887:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2891:2: Implicitly only storage sw->next (type struct opbx_switch *) not
                released before assignment: sw->next = NULL
pbx.c:2893:3: Implicitly only storage prev->next (type struct opbx_switch *)
                not released before assignment: prev->next = sw
pbx.c:2893:3: Implicitly temp storage sw assigned to implicitly only:
                prev->next = sw
pbx.c:2895:3: Variable sw is kept in true branch, but not kept in false branch.
  pbx.c:2895:3: in true branch:
  pbx.c:2893:3: Storage sw becomes kept
pbx.c:2896:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_unregister_switch)
pbx.c:2903:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&switchlock)
pbx.c:2911:5: Implicitly only storage prev->next (type struct opbx_switch *)
                not released before assignment: prev->next = tmp->next
pbx.c:2913:5: Only storage tmp->next assigned to unqualified:
                switches = tmp->next
pbx.c:2913:5: Clauses exit with tmp->next referencing kept storage in true
                branch, implicitly only storage in false branch
  pbx.c:2911:5: Storage tmp->next becomes kept
pbx.c:2920:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function complete_show_application)
pbx.c:2978:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&applock)
pbx.c:2991:5: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2999:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:2971:46: Parameter line not used
pbx.c:2972:6: Parameter pos not used
pbx.c: (in function handle_show_application)
pbx.c:3011:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&applock)
pbx.c:3031:6: Assignment of arbitrary unsigned integral type to int:
                synopsis_size = strlen(a->synopsis) + 23
pbx.c:3033:6: Assignment of arbitrary unsigned integral type to int:
                synopsis_size = strlen("Not available") + 23
pbx.c:3037:6: Assignment of arbitrary unsigned integral type to int:
                description_size = strlen(a->description) + 23
pbx.c:3039:6: Assignment of arbitrary unsigned integral type to int:
                description_size = strlen("Not available") + 23
pbx.c:3042:9: Operands of && are non-boolean (char *): synopsis && description
pbx.c:3043:6: Return value (type int) ignored: snprintf(info, 6...
pbx.c:3044:17: Passed storage infotitle not completely defined (*infotitle is
                 undefined): term_color (infotitle, ...)
pbx.c:3044:6: Return value (type char *) ignored: term_color(infot...
pbx.c:3045:17: Passed storage syntitle not completely defined (*syntitle is
                 undefined): term_color (syntitle, ...)
pbx.c:3045:6: Return value (type char *) ignored: term_color(synti...
pbx.c:3046:17: Passed storage destitle not completely defined (*destitle is
                 undefined): term_color (destitle, ...)
pbx.c:3046:6: Return value (type char *) ignored: term_color(desti...
pbx.c:3047:6: Return value (type char *) ignored: term_color(synop...
pbx.c:3050:6: Return value (type char *) ignored: term_color(descr...
pbx.c:3069:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3072:6: Test expression for if not boolean, type int: no_registered_app
pbx.c: (in function handle_show_hints)
pbx.c:3094:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&hintlock)
pbx.c:3111:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3081:42: Parameter argc not used
pbx.c:3081:54: Parameter argv not used
pbx.c: (in function handle_show_switches)
pbx.c:3125:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&switchlock)
pbx.c:3134:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3116:45: Parameter argc not used
pbx.c:3116:57: Parameter argv not used
pbx.c: (in function handle_show_applications)
pbx.c:3149:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&applock)
pbx.c:3157:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3162:23: Operand of ! is non-boolean (int): !strcmp(argv[2], "like")
pbx.c:3164:29: Operand of ! is non-boolean (int):
                 !strcmp(argv[2], "describing")
pbx.c:3169:8: Operand of ! is non-boolean (int): !like
pbx.c:3169:19: Operand of ! is non-boolean (int): !describing
pbx.c:3180:7: Test expression for if not boolean, type int: like
pbx.c:3185:14: Test expression for if not boolean, type int: describing
pbx.c:3202:7: Test expression for if not boolean, type int: printapp
pbx.c:3206:8: Operand of ! is non-boolean (int): !like
pbx.c:3206:19: Operand of ! is non-boolean (int): !describing
pbx.c:3213:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function complete_show_applications)
pbx.c:3221:7: Test expression for if not boolean, type int:
                opbx_strlen_zero(word)
pbx.c:3218:47: Parameter line not used
pbx.c: (in function complete_show_dialplan_context)
pbx.c:3260:6: Test expression for if not boolean, type int:
                opbx_lock_contexts()
pbx.c:3274:5: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:3275:16: Fresh storage c not released before return
  pbx.c:3266:2: Fresh storage c created
pbx.c:3278:3: Fresh storage c (type struct opbx_context *) not released before
                assignment: c = opbx_walk_contexts(c)
  pbx.c:3266:2: Fresh storage c created
pbx.c:3282:2: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:3250:51: Parameter line not used
pbx.c: (in function show_dialplan_helper)
pbx.c:3300:6: Test expression for if not boolean, type int:
                opbx_lock_contexts()
pbx.c:3309:12: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_context_name(c)
pbx.c:3309:5: Operand of ! is non-boolean (int):
                !strcmp(opbx_get_context_name(c), context)
pbx.c:3313:9: Operand of ! is non-boolean (int): !opbx_lock_context(c)
pbx.c:3338:29: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_extension_name(e)
pbx.c:3338:8: Operand of ! is non-boolean (int):
                !opbx_extension_match(opbx_get_extension_name(e), exten)
pbx.c:3337:10: Left operand of && is non-boolean (char *):
   exten && !opbx_extension_match(opbx_get_extension_name(e), exten)
pbx.c:3348:11: Operand of ! is non-boolean (int): !context_info_printed
pbx.c:3365:6: Unrecognized identifier: bzero
pbx.c:3367:7: New fresh storage (type char *) passed as implicitly temp (not
                released): opbx_get_extension_name(e)
pbx.c:3366:6: Return value (type int) ignored: snprintf(buf, si...
pbx.c:3373:8: New fresh storage (type char *) passed as implicitly temp (not
                released): opbx_get_extension_app(e)
pbx.c:3371:7: Return value (type int) ignored: snprintf(buf2, s...
pbx.c:3378:8: New fresh storage (type char *) passed as implicitly temp (not
                released): opbx_get_extension_app(e)
pbx.c:3379:8: New fresh storage (type char *) passed as implicitly temp (not
                released): (char *)opbx_get_extension_app_data(e)
pbx.c:3375:7: Return value (type int) ignored: snprintf(buf2, s...
pbx.c:3392:46: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_extension_label(p)
pbx.c:3392:8: Return value (type int) ignored: snprintf(buf, si...
pbx.c:3397:9: New fresh storage (type char *) passed as implicitly temp (not
                released): opbx_get_extension_app(p)
pbx.c:3395:8: Return value (type int) ignored: snprintf(buf2, s...
pbx.c:3402:9: New fresh storage (type char *) passed as implicitly temp (not
                released): opbx_get_extension_app(p)
pbx.c:3403:9: New fresh storage (type char *) passed as implicitly temp (not
                released): (char *)opbx_get_extension_app_data(p)
pbx.c:3399:8: Return value (type int) ignored: snprintf(buf2, s...
pbx.c:3387:54: Fresh storage p (type struct opbx_exten *) not released before
   assignment (in post loop increment): p = opbx_walk_extension_priorities(e,
   p)
  pbx.c:3387:11: Fresh storage p created
pbx.c:3410:6: Fresh storage p not released before scope exit
  pbx.c:3387:11: Fresh storage p created
pbx.c:3332:56: Fresh storage e (type struct opbx_exten *) not released before
   assignment (in post loop increment): e = opbx_walk_context_extensions(c, e)
  pbx.c:3332:10: Fresh storage e created
pbx.c:3416:7: New fresh storage (type char *) passed as implicitly temp (not
                released): opbx_get_include_name(i)
pbx.c:3415:6: Return value (type int) ignored: snprintf(buf, si...
pbx.c:3430:13: Operand of ! is non-boolean (int): !dupe
pbx.c:3431:9: Only storage assigned to implicitly temp:
                includes[includecount] = (char *)opbx_get_include_name(i)
pbx.c:3432:34: New fresh storage (type char *) passed as implicitly temp (not
                 released): (char *)opbx_get_include_name(i)
pbx.c:3432:9: Return value (type int) ignored: show_dialplan_he...
pbx.c:3413:54: Fresh storage i (type struct opbx_include *) not released before
   assignment (in post loop increment): i = opbx_walk_context_includes(c, i)
  pbx.c:3413:10: Fresh storage i created
pbx.c:3447:6: Return value (type int) ignored: snprintf(buf, si...
pbx.c:3448:6: Return value (type int) ignored: snprintf(ignorep...
pbx.c:3449:22: Right operand of || is non-boolean (int):
                 (!exten) || opbx_extension_match(ignorepat, exten)
pbx.c:3453:6: Fresh storage ipname not released before scope exit
  pbx.c:3445:55: Fresh storage ipname created
pbx.c:3444:56: Fresh storage ip (type struct opbx_ignorepat *) not released
   before assignment (in post loop increment):
   ip = opbx_walk_context_ignorepats(c, ip)
  pbx.c:3444:10: Fresh storage ip created
pbx.c:3457:8: New fresh storage (type char *) passed as implicitly temp (not
                released): opbx_get_switch_name(sw)
pbx.c:3458:8: New fresh storage (type char *) passed as implicitly temp (not
                released): opbx_get_switch_data(sw)
pbx.c:3456:7: Return value (type int) ignored: snprintf(buf, si...
pbx.c:3455:57: Fresh storage sw (type struct opbx_sw *) not released before
   assignment (in post loop increment): sw = opbx_walk_context_switches(c, sw)
  pbx.c:3455:11: Fresh storage sw created
pbx.c:3464:5: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:3467:9: Test expression for if not boolean, type int:
                context_info_printed
pbx.c:3468:5: Fresh storage e not released before scope exit
  pbx.c:3332:10: Fresh storage e created
pbx.c:3468:5: Fresh storage i not released before scope exit
  pbx.c:3413:10: Fresh storage i created
pbx.c:3468:5: Fresh storage ip not released before scope exit
  pbx.c:3444:10: Fresh storage ip created
pbx.c:3468:5: Fresh storage sw not released before scope exit
  pbx.c:3455:11: Fresh storage sw created
pbx.c:3306:41: Fresh storage c (type struct opbx_context *) not released before
   assignment (in post loop increment): c = opbx_walk_contexts(c)
  pbx.c:3306:7: Fresh storage c created
pbx.c:3471:2: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:3475:13: Fresh storage c not released before return
  pbx.c:3306:7: Fresh storage c created
pbx.c:3477:14: Fresh storage c not released before return
  pbx.c:3306:7: Fresh storage c created
pbx.c: (in function handle_show_dialplan)
pbx.c:3496:7: Operands of && are non-boolean (char *):
                splitter && strchr(argv[2], '@')
pbx.c:3502:8: Test expression for if not boolean, type int:
                opbx_strlen_zero(exten)
pbx.c:3504:8: Test expression for if not boolean, type int:
                opbx_strlen_zero(context)
pbx.c:3506:65: Passed storage incstack not completely defined (*incstack is
                 undefined): show_dialplan_helper (..., incstack)
pbx.c:3506:4: Return value (type int) ignored: show_dialplan_he...
pbx.c:3510:8: Test expression for if not boolean, type int:
                opbx_strlen_zero(context)
pbx.c:3512:65: Passed storage incstack not completely defined (*incstack is
                 undefined): show_dialplan_helper (..., incstack)
pbx.c:3512:4: Return value (type int) ignored: show_dialplan_he...
pbx.c:3516:60: Passed storage incstack not completely defined (*incstack is
                 undefined): show_dialplan_helper (..., incstack)
pbx.c:3516:3: Return value (type int) ignored: show_dialplan_he...
pbx.c:3520:18: Operand of ! is non-boolean (int): !counters.context_existence
pbx.c:3520:6: Left operand of && is non-boolean (char *):
                context && !counters.context_existence
pbx.c:3525:16: Operand of ! is non-boolean (int): !counters.extension_existence
pbx.c:3525:6: Left operand of && is non-boolean (char *):
                exten && !counters.extension_existence
pbx.c:3549:2: Initializer block for pbx_cli[0] has 5 fields, but struct
   opbx_cli_entry has 7 fields: { "show", "applications", NULL },
   handle_show_applications, "Shows registered dialplan applications",
   show_applications_help, complete_show_applications
 Initializer does not set every field in the structure. (Use -fullinitblock to
 inhibit warning)
pbx.c:3551:2: Initializer block for pbx_cli[1] has 4 fields, but struct
   opbx_cli_entry has 7 fields: { "show", "functions", NULL },
   handle_show_functions, "Shows registered dialplan functions",
   show_functions_help
pbx.c:3553:2: Initializer block for pbx_cli[2] has 5 fields, but struct
   opbx_cli_entry has 7 fields: { "show", "function", NULL },
   handle_show_function, "Describe a specific dialplan function",
   show_function_help, complete_show_function
pbx.c:3555:2: Initializer block for pbx_cli[3] has 5 fields, but struct
   opbx_cli_entry has 7 fields: { "show", "application", NULL },
   handle_show_application, "Describe a specific dialplan application",
   show_application_help, complete_show_application
pbx.c:3563:3: Additional initialization errors for pbx_cli not reported
pbx.c: (in function opbx_unregister_application)
pbx.c:3568:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&applock)
pbx.c:3576:5: Implicitly only storage tmpl->next (type struct opbx_app *) not
                released before assignment: tmpl->next = tmp->next
pbx.c:3578:5: Only storage tmp->next assigned to unqualified static:
                apps = tmp->next
pbx.c:3582:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3583:13: Function returns with global apps referencing released storage
  pbx.c:3581:9: Storage apps released
pbx.c:3588:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c: (in function opbx_context_create)
pbx.c:3596:2: Assignment of size_t to int: length = sizeof(struct opbx_context)
pbx.c:3600:3: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:3607:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3610:5: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3615:15: Function malloc expects arg 1 to be size_t gets int: length
pbx.c:3617:18: Function memset expects arg 3 to be size_t gets int: length
pbx.c:3618:3: Return value (type int) ignored: opbx_mutex_init(...
pbx.c:3619:10: Parameter 1 (tmp->name) to function strcpy is declared unique
                 but may be aliased externally by parameter 2 (name)
pbx.c:3620:3: Implicitly only storage tmp->root (type struct opbx_exten *) not
                released before assignment: tmp->root = NULL
pbx.c:3621:3: Implicitly only storage tmp->registrar (type char *) not released
                before assignment: tmp->registrar = registrar
pbx.c:3621:3: Implicitly temp storage registrar assigned to implicitly only:
                tmp->registrar = registrar
pbx.c:3622:3: Implicitly only storage tmp->next (type struct opbx_context *)
                not released before assignment: tmp->next = *local_contexts
pbx.c:3623:3: Implicitly only storage tmp->includes (type struct opbx_include
                *) not released before assignment: tmp->includes = NULL
pbx.c:3624:3: Implicitly only storage tmp->ignorepats (type struct
   opbx_ignorepat *) not released before assignment: tmp->ignorepats = NULL
pbx.c:3626:7: Test expression for if not boolean, type int: option_debug
pbx.c:3631:3: Variable registrar is kept in true branch, but not kept in false
                branch.
  pbx.c:3631:3: in true branch:
  pbx.c:3621:3: Storage registrar becomes kept
pbx.c:3631:3: Clauses exit with *local_contexts referencing kept storage in
                true branch, local storage in false branch
  pbx.c:3622:3: Storage *local_contexts becomes kept
pbx.c:3634:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3635:9: Possibly null storage tmp returned as non-null: tmp
  pbx.c:3615:8: Storage tmp may become null
pbx.c:3635:13: Storage *extcontexts reachable from parameter is kept (should be
                 unqualified)
  pbx.c:3622:3: Storage *extcontexts becomes kept
pbx.c: (in function opbx_merge_contexts_and_delete)
pbx.c:3662:59: Passed storage store.lock.__m_lock contains 2 undefined fields:
                 __status, __spinlock
pbx.c:3662:59: Passed storage store.lock contains 4 undefined fields:
                 __m_reserved, __m_count, __m_owner, __m_kind
pbx.c:3662:40: Return value (type int) ignored: pthread_mutex_in...
pbx.c:3663:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:3665:27: Operand of ! is non-boolean (int):
                 !strcmp(registrar, hint->exten->parent->registrar)
pbx.c:3665:7: Left operand of && is non-boolean (struct opbx_state_cb *):
   hint->callbacks && !strcmp(registrar, hint->exten->parent->registrar)
pbx.c:3666:4: Assignment of arbitrary unsigned integral type to int:
   length = strlen(hint->exten->exten) + strlen(hint->exten->parent->name) + 2
   + sizeof((*this))
pbx.c:3667:21: Function calloc expects arg 2 to be size_t gets int: length
pbx.c:3672:4: Implicitly only storage this->callbacks (type struct
   opbx_state_cb *) not released before assignment:
   this->callbacks = hint->callbacks
pbx.c:3675:4: Implicitly only storage this->context (type char *) not released
                before assignment: this->context = this->data
pbx.c:3675:4: Unqualified storage this->data assigned to implicitly only:
                this->context = this->data
pbx.c:3677:4: Implicitly only storage this->exten (type char *) not released
   before assignment: this->exten = this->data + strlen(this->context) + 1
pbx.c:3679:13: Implicitly only storage this->list.next (type struct store_hint
   *) not released before assignment: (this)->list.next = (&store)->first
pbx.c:3682:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3685:2: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:3700:3: Implicitly only storage lasttmp->next (type struct opbx_context
                *) not released before assignment: lasttmp->next = contexts
pbx.c:3700:3: Unqualified static storage contexts assigned to implicitly only:
                lasttmp->next = contexts
pbx.c:3705:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3710:164: Clauses exit with cur referencing implicitly only storage in
                  true branch, local storage in continuation
  pbx.c:3710:94: Storage cur becomes implicitly only (through alias
  store.first)
pbx.c:3713:3: Return value (type int) ignored: pthread_mutex_lo...
pbx.c:3725:5: Return value (type int) ignored: prevcb->callback...
pbx.c:3726:10: Only storage prevcb->data (type void *) derived from released
                 storage is not released (memory leak): prevcb
pbx.c:3726:10: Only storage prevcb->callback (type opbx_state_cb_type) derived
                 from released storage is not released (memory leak): prevcb
pbx.c:3726:10: Only storage prevcb->next (type struct opbx_state_cb *) derived
                 from released storage is not released (memory leak): prevcb
pbx.c:3736:3: Return value (type int) ignored: pthread_mutex_un...
pbx.c:3740:9: Only storage store.first (type struct store_hint *) derived from
                variable declared in this scope is not released (memory leak)
pbx.c:3740:9: Only storage store.lock.__m_owner (type _pthread_descr) derived
   from variable declared in this scope is not released (memory leak)
pbx.c:3740:9: Fresh storage exten not released before return
  pbx.c:3711:3: Fresh storage exten created
pbx.c: (in function opbx_context_add_include)
pbx.c:3752:6: Test expression for if not boolean, type int:
                opbx_lock_contexts()
pbx.c:3753:11: Unrecognized identifier: EBUSY
pbx.c:3761:15: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_context_name(c)
pbx.c:3761:8: Operand of ! is non-boolean (int):
                !strcmp(opbx_get_context_name(c), context)
pbx.c:3764:4: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:3765:15: Fresh storage c not released before return
  pbx.c:3758:2: Fresh storage c created
pbx.c:3767:3: Fresh storage c (type struct opbx_context *) not released before
                assignment: c = opbx_walk_contexts(c)
  pbx.c:3758:2: Fresh storage c created
pbx.c:3771:2: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:3772:10: Unrecognized identifier: ENOENT
pbx.c: (in function get_timerange)
pbx.c:3795:34: Operand of ! is non-boolean (int): !strcmp(times, "*")
pbx.c:3795:6: Left operand of || is non-boolean (int):
                opbx_strlen_zero(times) || !strcmp(times, "*")
pbx.c:3797:4: Assignment of int to unsigned int: i->minmask[x] = (1 << 30) - 1
pbx.c:3808:8: Left operand of && is non-boolean (char): *e && !isdigit(*e)
pbx.c:3810:7: Operand of ! is non-boolean (char): !*e
pbx.c:3836:29: Right operand of << may be negative (int): 1 << (x % 30)
 The right operand to a shift operator may be negative (behavior undefined).
 (Use -shiftnegative to inhibit warning)
pbx.c:3839:28: Right operand of << may be negative (int): 1 << (x % 30)
pbx.c: (in function get_dow)
pbx.c:3887:32: Operand of ! is non-boolean (int): !strcmp(dow, "*")
pbx.c:3887:6: Left operand of || is non-boolean (int):
                opbx_strlen_zero(dow) || !strcmp(dow, "*")
pbx.c:3888:10: Return value type int does not match declared type unsigned int:
                 (1 << 7) - 1
pbx.c:3914:17: Right operand of << may be negative (int): 1 << x
pbx.c:3917:16: Right operand of << may be negative (int): 1 << x
pbx.c: (in function get_day)
pbx.c:3929:32: Operand of ! is non-boolean (int): !strcmp(day, "*")
pbx.c:3929:6: Left operand of || is non-boolean (int):
                opbx_strlen_zero(day) || !strcmp(day, "*")
pbx.c:3930:3: Assignment of int to unsigned int:
                mask = (1 << 30) + ((1 << 30) - 1)
pbx.c:3963:17: Right operand of << may be negative (int): 1 << x
pbx.c:3965:16: Right operand of << may be negative (int): 1 << x
pbx.c: (in function get_month)
pbx.c:3993:32: Operand of ! is non-boolean (int): !strcmp(mon, "*")
pbx.c:3993:6: Left operand of || is non-boolean (int):
                opbx_strlen_zero(mon) || !strcmp(mon, "*")
pbx.c:3994:10: Return value type int does not match declared type unsigned int:
                 (1 << 12) - 1
pbx.c:4019:17: Right operand of << may be negative (int): 1 << x
pbx.c:4022:16: Right operand of << may be negative (int): 1 << x
pbx.c: (in function opbx_build_timing)
pbx.c:4033:6: Test expression for if not boolean, type int:
                opbx_strlen_zero(info_in)
pbx.c:4036:19: Passed storage info_save not completely defined (*info_save is
                 undefined): opbx_copy_string (info_save, ...)
pbx.c:4039:2: Assignment of int to unsigned int: i->monthmask = (1 << 12) - 1
pbx.c:4040:2: Assignment of int to unsigned int:
                i->daymask = (1 << 30) - 1 + (1 << 30)
pbx.c:4041:2: Assignment of int to unsigned int: i->dowmask = (1 << 7) - 1
pbx.c:4043:25: Left operand of && is non-boolean (char): *c && (*c != '|')
pbx.c:4043:54: Test expression for if not boolean, type char: *c
pbx.c:4049:25: Left operand of && is non-boolean (char): *c && (*c != '|')
pbx.c:4049:54: Test expression for if not boolean, type char: *c
pbx.c:4056:25: Left operand of && is non-boolean (char): *c && (*c != '|')
pbx.c:4056:54: Test expression for if not boolean, type char: *c
pbx.c:4062:25: Left operand of && is non-boolean (char): *c && (*c != '|')
pbx.c:4062:54: Test expression for if not boolean, type char: *c
pbx.c: (in function opbx_check_timing)
pbx.c:4074:2: Return value (type time_t) ignored: time(&t)
pbx.c:4078:29: Right operand of << may be negative (int): 1 << tm.tm_mon
pbx.c:4078:29: Field tm.tm_mon used before definition
pbx.c:4078:7: Operand of ! is non-boolean (unsigned int):
                !(i->monthmask & (1 << tm.tm_mon))
pbx.c:4084:28: Field tm.tm_mday used before definition
pbx.c:4084:27: Right operand of << may be negative (int): 1 << (tm.tm_mday - 1)
pbx.c:4084:7: Operand of ! is non-boolean (unsigned int):
                !(i->daymask & (1 << (tm.tm_mday - 1)))
pbx.c:4088:27: Right operand of << may be negative (int): 1 << tm.tm_wday
pbx.c:4088:27: Field tm.tm_wday used before definition
pbx.c:4088:7: Operand of ! is non-boolean (unsigned int):
                !(i->dowmask & (1 << tm.tm_wday))
pbx.c:4092:7: Field tm.tm_hour used before definition
pbx.c:4099:40: Field tm.tm_min used before definition
pbx.c:4099:39: Right operand of << may be negative (int): 1 << (tm.tm_min / 2)
pbx.c:4099:7: Operand of ! is non-boolean (unsigned int):
                !(i->minmask[tm.tm_hour] & (1 << (tm.tm_min / 2)))
pbx.c: (in function opbx_context_add_include2)
pbx.c:4122:2: Assignment of size_t to int: length = sizeof(struct opbx_include)
pbx.c:4126:29: Function malloc expects arg 1 to be size_t gets int: length
pbx.c:4128:11: Unrecognized identifier: ENOMEM
pbx.c:4133:25: Function memset expects arg 3 to be size_t gets int: length
pbx.c:4135:2: Implicitly only storage new_include->name (type char *) not
                released before assignment: new_include->name = p
pbx.c:4138:2: Implicitly only storage new_include->rname (type char *) not
                released before assignment: new_include->rname = p
pbx.c:4138:2: Kept storage p assigned to implicitly only:
                new_include->rname = p
 storage is transferred to a non-temporary reference after being passed as
 keep parameter. The storage may be released or new aliases created. (Use
 -kepttrans to inhibit warning)
  pbx.c:4135:2: Storage p becomes kept
pbx.c:4142:8: Left operand of && is non-boolean (char): *c && (*c != '|')
pbx.c:4145:6: Test expression for if not boolean, type char: *c
pbx.c:4149:2: Implicitly only storage new_include->next (type struct
   opbx_include *) not released before assignment: new_include->next = NULL
pbx.c:4150:2: Implicitly only storage new_include->registrar (type char *) not
                released before assignment: new_include->registrar = registrar
pbx.c:4150:2: Implicitly temp storage registrar assigned to implicitly only:
                new_include->registrar = registrar
pbx.c:4153:6: Test expression for if not boolean, type int:
                pthread_mutex_lock(&con->lock)
pbx.c:4156:13: Only storage c not released before return
  pbx.c:4154:8: Storage c becomes only
pbx.c:4164:4: Return value (type int) ignored: pthread_mutex_un...
pbx.c:4165:12: Unrecognized identifier: EEXIST
pbx.c:4166:14: Only storage c not released before return
  pbx.c:4154:8: Storage c becomes only
pbx.c:4174:3: Implicitly only storage il->next (type struct opbx_include *) not
                released before assignment: il->next = new_include
pbx.c:4176:3: Storage con->includes->stuff is kept in one path, but live in
                another.
  pbx.c:4135:2: Storage con->includes->stuff becomes kept
pbx.c:4176:3: Storage con->includes->name is kept in one path, but live in
                another.
  pbx.c:4138:2: Storage con->includes->name becomes kept
pbx.c:4176:3: Storage con->includes->next->stuff is kept in one path, but live
                in another.
  pbx.c:4135:2: Storage con->includes->next->stuff becomes kept
pbx.c:4176:3: Storage con->includes->next->name is kept in one path, but live
                in another.
  pbx.c:4138:2: Storage con->includes->next->name becomes kept
pbx.c:4179:2: Return value (type int) ignored: pthread_mutex_un...
pbx.c:4181:11: Only storage c not released before return
  pbx.c:4154:8: Storage c becomes only
pbx.c:4181:11: Storage con->includes->next->stuff reachable from parameter is
                 kept (should be unqualified)
pbx.c: (in function opbx_context_add_switch)
pbx.c:4193:6: Test expression for if not boolean, type int:
                opbx_lock_contexts()
pbx.c:4202:15: New fresh storage (type char *) passed as implicitly temp (not
                 released): opbx_get_context_name(c)
pbx.c:4202:8: Operand of ! is non-boolean (int):
                !strcmp(opbx_get_context_name(c), context)
pbx.c:4205:4: Return value (type int) ignored: opbx_unlock_cont...
pbx.c:4206:15: Fresh storage c not released before return
  pbx.c:4199:2: Fresh storage c created
pbx.c:4208:3: Fresh storage c (...

[Message clipped]