Clause 5.10.2 note 4 (before Rule 10.1) defines Wider and Narrower
"4. When comparing two types of the same type category, the terms wider and narrower are used to describe their relative sizes as measured in bytes. Two different types are sometimes implemented with the same size."
If sizeof(long) == sizeof(long long) then l is not narrower than ll, so it is compliant with R.10.3
However, if the size of long long subsequently changes (eg for a different target or compiler), then it would become non-compliant.
"4. When comparing two types of the same type category, the terms wider and narrower are used to describe their relative sizes as measured in bytes. Two different types are sometimes implemented with the same size."
If sizeof(long) == sizeof(long long) then l is not narrower than ll, so it is compliant with R.10.3
However, if the size of long long subsequently changes (eg for a different target or compiler), then it would become non-compliant.
Posted by and on behalf of the MISRA C Working Group

