Search code examples
cavr-gcc

avr-gcc: warning: 'overloadable' attribute directive ignored [-Wattributes]


I have a function, i need to overload, but compiler ignoring in and gives me an error later:

warning: 'overloadable' attribute directive ignored [-Wattributes]
[build]    11 | Vec3 multiply(Vec3 a, double b) __attribute__((overloadable));
[build]       | ^~~~
error: conflicting types for 'multiply'
[build]    11 | Vec2 multiply(Vec2 a, double b);
[build]       |      ^~~~~~~~

Solution

  • GCC does not support __attribute__((overloadable)), it's Clang's extension. C does not have function overloading, see here for workarounds via macros.