[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-indent] False Nesting and Unmatched 'else' errors
From: |
Leslie Mulder |
Subject: |
[Bug-indent] False Nesting and Unmatched 'else' errors |
Date: |
Wed, 26 Mar 2003 09:32:39 -0800 |
To who it may concern,
We came across some code (INPUT FILE below) that we wanted to run through
indent.
Unfortunately the code structure caused indent to generate a number of
false errors.
The code structure is arcane and is the result of cpp expansions of macros
defining
in-line functions.
Please note that we DID NOT write this code.
> indent --version
GNU indent 2.2.8
> indent indent_tst_01.c -o test.p.c
indent: indent_tst_01.c:15: Error:Stmt nesting error.
indent: indent_tst_01.c:23: Error:Stmt nesting error.
indent: indent_tst_01.c:24: Error:Unmatched 'else'
indent: indent_tst_01.c:25: Error:Stmt nesting error.
indent: indent_tst_01.c:26: Error:Stmt nesting error.
indent: indent_tst_01.c:30: Error:Stmt nesting error.
indent: indent_tst_01.c:31: Error:Unexpected end of file
>
/***********************************INPUT FILE indent_tst_01.c
static int
set_debug_comm(int __comm_id)
{
static int __selected_id = -2;
hal_virtual_comm_table_t* __chan;
int interrupt_state = 0;
int res = 1, update = 0;
;
if (update) {
// Find the interrupt state of the channel.
__chan = __call_vv_CYGNUM_CALL_IF_DEBUG_PROCS();
if (__chan)
interrupt_state = ({ int res; do { } while (0); res =
((__comm_if_control_t)((*__chan)[5]))(((__comm_if_ch_data_t)((*__chan)[0])),
__COMMCTL_IRQ_DISABLE); do { } while (0); res;});
__selected_id = __comm_id;
hal_virtual_vector_table[6]=(CYG_ADDRWORD)(comm_channels[__comm_id]);
// Set interrupt state on the new channel.
__chan = __call_vv_CYGNUM_CALL_IF_DEBUG_PROCS();
if (interrupt_state)
({ int res; do { } while (0); res =
((__comm_if_control_t)((*__chan)[5]))(((__comm_if_ch_data_t)((*__chan)[0])),
__COMMCTL_IRQ_ENABLE); do { } while (0); res;});
else
({ int res; do { } while (0); res =
((__comm_if_control_t)((*__chan)[5]))(((__comm_if_ch_data_t)((*__chan)[0])),
__COMMCTL_IRQ_DISABLE); do { } while (0); res;});
}
;
return res;
}
*****************************************************************/
/***********************************OUTPUT FILE test.p.c
static int
set_debug_comm (int __comm_id)
{
static int __selected_id = -2;
hal_virtual_comm_table_t * __chan;
int interrupt_state = 0;
int res = 1, update = 0;
;
if (update)
{
// Find the interrupt state of the channel.
__chan = __call_vv_CYGNUM_CALL_IF_DEBUG_PROCS ();
if (__chan)
interrupt_state = (
{
int res;
do
{
}
while (0);
res =
((__comm_if_control_t) ((*__chan)[5]))
(((__comm_if_ch_data_t) ((*__chan)[0])), __COMMCTL_IRQ_DISABLE);
do
{
}
while (0); res;}
);
__selected_id = __comm_id;
hal_virtual_vector_table[6] =
(CYG_ADDRWORD) (comm_channels[__comm_id]);
// Set interrupt state on the new channel.
__chan = __call_vv_CYGNUM_CALL_IF_DEBUG_PROCS ();
if (interrupt_state)
(
{
int res;
do
{
}
while (0);
res =
((__comm_if_control_t) ((*__chan)[5])) (((__comm_if_ch_data_t)
((*__chan)[0])),
__COMMCTL_IRQ_ENABLE);
do
{
}
while (0); res;}
);
else
(
{
int res;
do
{
}
while (0);
res =
((__comm_if_control_t) ((*__chan)[5]))
(((__comm_if_ch_data_t) ((*__chan)[0])), __COMMCTL_IRQ_DISABLE);
do
{
}
while (0); res;}
);
}
;
return res;
}
*****************************************************************/
/---------------------------------------------------------------------------------/
Leslie J. Mulder
Velocity Software Systems Ltd.
438 North Springer Ave.
Burnaby, B.C.
Canada V5B 1H4
Tel (604) 291-8183 Fax (604) 291-8443
/---------------------------------------------------------------------------------/
- [Bug-indent] False Nesting and Unmatched 'else' errors,
Leslie Mulder <=