On 11/7/19 12:41 PM, Tobias Burnus wrote:
This fixes the gfortran.dg/continuation_6.f fails testsuite fails with newer 
GLIBC.

The continuation line handling assumes that the line number starts at 0 (→ continue_line) and then can be incremented, if needed.

The problem came up with -pre_include, which is used with newer GLIBC to provide things like "!GCC$ builtin (cos) attributes simd (notinbranch) if('x86_64')".

There, first the file math-vector-fortran.h file is loaded, then the actual file. The 'continue_line' gets incremented for math-vector-fortran.h but nothing resets it before parsing the actual input file. For the 'include_stmt' function, the reset happens during parsing – while for our case, this knowledge is only in the line information, but on file change, 'continue_line' is not updated/reset.

I think the same issue can occur with #include, especially as one plays with #line, but I have not actually tested it. Obviously, if one plays around with #line during a continuation block, this check won't work either. However, it should fix the most common occurrence.

Additionally, I have removed the ATTRIBUTE_UNUSED from get_file's 'reason' as it is used in the linemap_add call.

And I have moved the OpenMP/OpenACC comment before if openmp/openacc condition, where in my opinion it belongs to.

OK for the trunk?

Tobias


Yes, OK, thanks for patch.

Jerry

Reply via email to