'identifier' : 'allocate( )' is only valid for data items of static extent
The __declspec( allocate()) syntax can be used for static data only. The following sample generates C2479:
#pragma section("mycode", read) __declspec(allocate("mycode")) int i = 0; // proper use of allocate static __declspec(allocate("mycode")) void DoNothing() { // C2479 } void main() { }