[RFC] GCC 8 Project proposal: Extensions supporting C Metaprogramming, pseudo-templates

Florian Weimer fweimer@redhat.com
Tue May 9 09:36:00 GMT 2017


On 05/09/2017 01:36 AM, Daniel Santos wrote:
> To further the usefulness of such techniques, I propose the addition of 
> a c-family attribute to declare a parameter, variable (and possibly 
> other declarations) as "constprop" or some similar word. The purpose of 
> the attribute is to:
> 
> 1.) Emit a warning or error when the value is not optimized away, and
> 2.) Direct various optimization passes to prefer (or force) either 
> cloning or inlining of a function with such a parameter.

I think GCC used to treat C and C++ constant expressions this way in the 
old days.  That is, what was a constant expression depended to some 
degree on the capabilities of the folder at least (and maybe the 
optimizers).  This wasn't such a great idea because it made behavior 
inconsistent across architectures and GCC versions.

There are also thorny specification issues, like is an array whose 
length is a constprop value a VLA or not?

If you are interested in metaprogramming techniques, you are probably 
better off writing code generators or using a C++ subset.

Thanks,
Florian



More information about the Gcc mailing list