Michael Felt <aixto...@felt.demon.nl> added the comment:

Glad you figured it out!

I doubt I would have. Thx!!

On 06/07/2020 14:37, Pablo Galindo Salgado wrote:
> Pablo Galindo Salgado <pablog...@gmail.com> added the comment:
>
> This is enough to reproduce the problem:
>
> #include <stdio.h>
>
> typedef struct {
>     char *str;
>     int type;
> } KeywordToken;
>
> static KeywordToken *the_array[] = {
>    NULL,
>    NULL,
>    (KeywordToken[]) {
>         {"if", 510},
>         {"in", 518},
>         {"as", 520},
>         {"is", 527},
>         {"or", 532},
>         {NULL, -1},
>    },
>    NULL,
>    NULL,
>     (KeywordToken[]) {
>         {"del11", 503},
>         {"try22", 511},
>         {NULL, -1},
>     },
>     NULL
> };
>
>
> int main() {
>    for (int s=0; s<7;s++) {
>       KeywordToken *tok = the_array[s];
>       printf("--> %i\n",s);
>       if (tok == NULL) {
>          continue;
>       }
>       printf("--> %i %.*s\n", s,s, tok->str);
>    }
>    return 0;
> }
>
> [cpython (3.9)]$ xlc check_bad.c -o check_bad
> [cpython (3.9)]$ ./check_bad
> --> 0
> --> 1
> --> 2
> Segmentation fault (core dumped)
>
>
> But if you change it to:
>
> #include <stdio.h>
>
> typedef struct {
>     char *str;
>     int type;
> } KeywordToken;
>
> static KeywordToken *the_array[] = {
>      (KeywordToken[]) {{NULL, -1}},
>      (KeywordToken[]) {{NULL, -1}},
>     (KeywordToken[]) {
>         {"if", 510},
>         {"in", 518},
>         {"as", 520},
>         {"is", 527},
>         {"or", 532},
>         {NULL, -1},
>     },
>     (KeywordToken[]) {{NULL, -1}},
>     (KeywordToken[]) {{NULL, -1}},
>     (KeywordToken[]) {
>         {"del11", 503},
>         {"try22", 511},
>         {NULL, -1},
>     },
>     (KeywordToken[]) {{NULL, -1}},
> };
>
>
> int main() {
>    for (int s=0; s<7;s++) {
>       KeywordToken *tok = the_array[s];
>       if (tok == NULL) {
>          continue;
>       }
>       printf("--> %i %.*s\n", s,s, tok->str);
>    }
>    return 0;
> }
>
> [cpython (3.9)]$ xlc check.c -o check
> [cpython (3.9)]$ ./check
> --> 0
> --> 1
> --> 2 if
> --> 3
> --> 4
> --> 5 del11
> --> 6
>
> ----------
>
> _______________________________________
> Python tracker <rep...@bugs.python.org>
> <https://bugs.python.org/issue41215>
> _______________________________________
>

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue41215>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to