Hi,
You are right. I have rewritten the source code slightly
using 'goto finish' method.

RCS file: /sources/global/global/libparser/Cpp.c,v
retrieving revision 1.22
diff -r1.22 Cpp.c
239,240c239,243
< } else if (c == EOF)
< die("failed to parse template [+%d %s].", savelineno, curfile);
---
> } else if (c == EOF) {
> if (param->flags & PARSER_WARNING)
> warning("failed to parse template [+%d %s].", savelineno, curfile);
> goto finish;
> }
583a587
> finish:


By the way, in the current GLOBAL, each parser can stop
the program itself. In that case, the tag files get corrupted.
When gtags ends with status != 0, you should not use them.

Regards
Shigio


2016-09-02 16:47 GMT+09:00 Gustaf Waldemarson <[email protected]>
:

> Hello Global Maintainers,
>
> I seem to have run into one or possibly two bugs while trying out
> Global:
>
> Recipe:
>
> 1. Create a new directory for testing:
>    - mkdir debug
>
> 2. Create a new file in the directory e.g. `main.cpp' with the contents:
>
>     #include <iostream>
>
>     #define TEST_MACRO struct test<
>
>     int main(void)
>     {
>         std::cout << "hello, world!" << std::endl;
>         return 0;
>     }
>
> 3. Generate tags:
>    - `gtags'
>    - Bug 1: Parser error: `gtags: failed to parse template [+3
>      ./main.cpp].'
>
> 4. Trying to use the generated tags then leads to possibly different
>    bug:
>    - `global -u'
>    - Bug 2: `gtags: /home/guswal01/git/debug/GTAGS seems older
>      format. Please remake tag files.'
>
> This occured on `Global 6.5'.4 when built on Ubuntu 15.10 using the
> default `sh reconf.sh && ./configure' settings.
>
> In my opinion, failing to parse some odd C++ file is usually fine, but
> in in this it seems like the tag files get corrupted somehow.
>
> _______________________________________________
> Bug-global mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/bug-global
>



-- 
Shigio YAMAGUCHI <[email protected]>
PGP fingerprint: D1CB 0B89 B346 4AB6 5663  C4B6 3CA5 BBB3 57BE DDA3
_______________________________________________
Bug-global mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-global

Reply via email to