I'm not sure how to find out what version of ARM compiler(armcc) is required for any given attribute to be supported.
For example __atribute__((noinline))?
See
http://www.keil.com/support/man/docs/armcc/armcc_chr1359124975804.htm
To address the titular question directly, the earliest version of armcc for which __attribute__((noinline)) is supported is version 3.0. I found that out the hard way, though; I don't know of any quick-reference for which versions introduced particular features.
Related
I heard that GCC actually assumes registers, and requires CPU to have them to work.
What work should be done to remove this dependency, and port GCC to some register-less non-Von Neuman arch, like Multiclet?
Did somebody tried this? Is there some project and experience one can use if wants to work on this ?
If not, is there some other FOSS compiler that can be ported to something like Multiclet. LLVM has pretty much the same requirements like GCC, and it is unsuitable for me since I don't know C++. So it needs to be plain C. I hear that GCC is also adding C++ code now. But I can use some older version as starting point.
Multiclet's C99 compiler is not closed source. Sources are available at their community suite. One may google it by name 'multiclet mcc lime'.
I have changed my micro controller in order to have more flash memory size, so then I realized that my new MCU, atxmega128a4 is supported for assembler only. It is important to note that I am using Avrsudio 5.1. Is it possible to update gcc to compile my C project? Is there any extension to fix the problem? Or I must update AVRStudio to any higher version?
I was wondering if there are any compilers that support a considerable amount of the new C11 standard. Looking for features like Generic Selection etc.
Any suggestions?
Pelles C version 7.00 (Release Candidate is available now)
http://www.smorgasbordet.com/pellesc/
Your best bet is probably Clang. See the release notes for the current release and the upcoming one.
GCC 4.9 supports generic selection . It is in general bugfixing stage before release. http://gcc.gnu.org/gcc-4.9/changes.html
I think Clang supports generic selection.
Intel 18 supports nearly all of C11 and supported generic selection starting in version 16.
https://software.intel.com/en-us/articles/c11-support-in-intel-c-compiler
Cray 8.5 documents support for C11 here but I haven't tested it thoroughly. I recall that atomics have been supported for a while, because they are necessary for this project to work on Cray machines.
Full disclosure: I work for Intel, but not in the compiler team.
I will be working exclusively in C. Ubunutu 10.10 will retrieve version 2.8 of Clang from it's repositories and fully install it. I have compiled Clang v 3.1 from source and have added it to the path (after uninstalling Clang 2.8), but do not have access to it's man pages this way, and have an occasional nagging feeling about not having fully "installed it", though it appears to be fully functional on some testing.
Is there any practical difference between versions 2.8 and 3.1 from a C developer's (student actually) point of view? I am working exclusively in C and will not tap into it's C++ or objective C capabilities. I believe most of the development in Clang recently has been in extending it's C++ abilities.
The noticeable difference I found is that for 2.8 VLA function parameters make the compiler dump core. In 2.9 (and thus in 3.1 I suppose) this bug seems to be fixed.
Also this newer version of clang already implements part of C11, in particular _Generic.
I have a managed c++ project.
How do I make the version information of the DLL (as seen in explorer and used by installers) match the version information generated in the Assembly Version atttribute?
AssemblyInfo.cpp:
[assembly:AssemblyVersion("5.1.*")];
The problem is discussed here.
Also set the AssemblyFileVersionAttribute and AssemblyInformationalVersionAttribute.