The specification doesn't seem very clear on to what extent the __sec_*
operations must act like functions (what happens if someone puts parentheses
around the __sec_* name, for example - that wouldn't work with the keyword
approach). So the specification should be clarified there, but I think saying
the
__sec_* operations are syntactically special, like keywords, is more appropriate
than requiring other uses to work.
+ return_int = (int) int_cst_value (fn_arg);
+ else
+ {
+ if (location == UNKNOWN_LOCATION && EXPR_HAS_LOCATION (fn))
+ location = EXPR_LOCATION (fn);
+ error_at (location, "__sec_implicit_index parameter must be a "
+ "constant integer expression");
The term is "integer constant expression" not "constant integer expression".
FIXED!
...it looks like you're going to have to rework all this as a keyword.
OK, CAN I LOOK AT THIS AFTER WE FINISH THE BUILTIN FUNCTION IMPLEMENTATION FIX?
Yes.
Thank you for fixing everything I pointed out. Let's now wait for
Joseph to give the final ok. There are some things he suggested, that I
didn't look at at all, so I am deferring to him.
Thanks again.