> 3. The big one: Getting the integer(long long) and float(long double)
> suffixes that are not used by gcc out of the preprocessor.  Then we can
> build the calls.

Just my two cents:
Add an output parameter to the function "cpp_classify_number()"
(libcpp/expr.c) to get the user-defined suffix.
It should be optional, so that it is ignored when not needed.

unsigned int
-cpp_classify_number (cpp_reader *pfile, const cpp_token *token)
+cpp_classify_number (cpp_reader *pfile, const cpp_token *token, char
**suffix) //exposition only!

Then in the function "c_lex_with_flags()" (c-family/c-lex.c) retrieve
the suffix and pass it on to the function "interpret_integer()" /
"interpret_float()", that should add an input parameter accordingly.

The function "interpret_{integer,float}()" calls
"build_int_cst_wide()" / "build_real()" to build the constant. Then
you can build a tree for the identifier (with "get_identifier()",
perhaps) and attach it somehow to the constant.
You may consider creating a new TREE type for that...

I'm afraid that you have quite some job here...

Best regards.
Rodrigo

Reply via email to