Question about Dir 4.3 when a static function contains only variable declaration, asm and return statement

Moderators: misra-c, david ward

Post Reply
chenzhuowansui
Posts: 7
Joined: Wed Feb 20, 2019 5:59 am
Company: Synopsys

Question about Dir 4.3 when a static function contains only variable declaration, asm and return statement

Post by chenzhuowansui » Sat Jun 29, 2019 10:39 am

Hi,
Given the following case:

Code: Select all

static inline uint32_t test(void)
{
    uint32_t tmp;

    __asm__ __volatile__( 
        "mrc p15, 0, %0, c1, c0, 2\n\t"
        : "=r" (tmp)
        );

    return tmp;
}
i wonder if we could take the above case as compliant, as we cannot have variable declaration and return value in assembly. Thanks

chenzhuowansui
Posts: 7
Joined: Wed Feb 20, 2019 5:59 am
Company: Synopsys

Re: Question about Dir 4.3 when a static function contains only variable declaration, asm and return statement

Post by chenzhuowansui » Mon Aug 19, 2019 5:21 am

Could anyone help clarify it? thanks

chenzhuowansui
Posts: 7
Joined: Wed Feb 20, 2019 5:59 am
Company: Synopsys

Re: Question about Dir 4.3 when a static function contains only variable declaration, asm and return statement

Post by chenzhuowansui » Mon Aug 19, 2019 5:21 am

Not sure why this content was deledted and cannot be seen any longer, i just re-posted it here.
Could anyone help clarify it? thanks

static inline uint32_t test(void) {
uint32_t tmp;
__asm__ __volatile__( "mrc p15, 0, %0, c1, c0, 2\n\t" : "=r" (tmp) );
return tmp;
}


i wonder if we could take the above case as compliant, as we cannot have variable declaration and return value in assembly.

misra-c
Posts: 560
Joined: Thu Jan 05, 2006 1:11 pm

Re: Question about Dir 4.3 when a static function contains only variable declaration, asm and return statement

Post by misra-c » Fri Sep 06, 2019 2:30 pm

Thank you for your question. The MISRA-C Working Group will consider this question at their next meeting in October
---
Posted by and on behalf of
the MISRA C Working Group

chenzhuowansui
Posts: 7
Joined: Wed Feb 20, 2019 5:59 am
Company: Synopsys

Re: Question about Dir 4.3 when a static function contains only variable declaration, asm and return statement

Post by chenzhuowansui » Fri Oct 11, 2019 9:00 am

Any update on this question? thanks

chenzhuowansui
Posts: 7
Joined: Wed Feb 20, 2019 5:59 am
Company: Synopsys

Re: Question about Dir 4.3 when a static function contains only variable declaration, asm and return statement

Post by chenzhuowansui » Fri Nov 15, 2019 1:14 am

Hi there, may i know if there is any conclusions for this issue? Thanks

misra-c
Posts: 560
Joined: Thu Jan 05, 2006 1:11 pm

Re: Question about Dir 4.3 when a static function contains only variable declaration, asm and return statement

Post by misra-c » Wed Nov 27, 2019 10:03 am

Directive 4.3 states that the assembly language instruction shall be "encapsulated and isolated". This guideline is a directive rather than a rule, which means that the phrase "isolated" should not be taken as fully defined and may be interpreted in different ways by different projects.

The intention is that there should be minimal C code within the enclosing macro or function. In particular, the intention is that there should be no C language statements which have effects in the abstract machine. For example:
* expression statements
* selection statements
* iteration statements

The MISRA-C working group would consider that a function that contains only declarations and a return statement in addition to the assembler code instructions is acceptable.
---
Posted by and on behalf of
the MISRA C Working Group

Post Reply

Return to “7.4 Code design”