* gcc-plugin/src/c-expr.y (STARPU_CPP_TOKENS): Add `CPP_STRING'. (YCPP_STRING): New token. (primary_expression): Add `string_literal'. (string_literal): New terminal. * gcc-plugin/tests/register.c (main): Add `register' with a string literal.
@@ -109,7 +109,8 @@
TK (CPP_MULT) \
TK (CPP_DIV) \
TK (CPP_DOT) \
- TK (CPP_DEREF)
+ TK (CPP_DEREF) \
+ TK (CPP_STRING)
#ifndef __cplusplus
@@ -165,6 +166,7 @@
%token YCPP_DIV "/"
%token YCPP_DOT "."
%token YCPP_DEREF "->"
+%token YCPP_STRING "string"
%% /* Grammar rules. */
@@ -248,10 +250,14 @@ postfix_expression:
primary_expression: identifier
| constant
+ | string_literal
| YCPP_OPEN_PAREN expression YCPP_CLOSE_PAREN { $$ = $2; }
;
constant: YCPP_NUMBER { $$ = $1; }
+string_literal: YCPP_STRING { $$ = $1; }
+;
+
%%
@@ -172,7 +172,12 @@ main (int argc, char *argv[])
expected_register_arguments.element_size = sizeof m3d[0];
#pragma starpu register m3d
- assert (data_register_calls == 17);
+ expected_register_arguments.pointer = "hello";
+ expected_register_arguments.elements = sizeof "hello";
+ expected_register_arguments.element_size = 1;
+#pragma starpu register "hello"
+ assert (data_register_calls == 18);
free (y);