I have had intermittent issues with SE becoming confused about whether to indent with tabs or space for a few versions now (several versions ago this seemed to work better). I have C set to indent with tabs (rather than spaces) by default, but most projects I work on indent with spaces and by and large adaptive formatting spots this and I get spaces, but once in a while, for no obvious reason I find myself using tabs, most commonly when syntax expansion has taken place, but not always. This has happened sufficiently rarely and unrepeatably that I haven't raised the issue before, but now I finally have a consistent case :-)
asm blocks such as:
static inline uint32_t get_cabac_by22_peek_arm(const CABACContext *const c)
{
uint32_t rv = c->low &~ 1, tmp;
__asm__ (
"cmp %[inv] , #0 \n\t"
"it ne \n\t"
"umullne %[tmp] , %[rv] , %[inv], %[rv] \n\t"
: // Outputs
[rv]"+r"(rv),
[tmp]"=r"(tmp)
: // Inputs
[inv]"r"(c->range)
: // Clobbers
"cc"
);
return rv << 1;
}
Will get all their code lines indented with tabs despite this not occurring anywhere else in the source file.
Thanks
John Cox