[llvm-bugs] [Bug 45637] New: [flang] Build fails with gcc-10

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Apr 22 02:49:42 PDT 2020


https://bugs.llvm.org/show_bug.cgi?id=45637

            Bug ID: 45637
           Summary: [flang] Build fails with gcc-10
           Product: flang
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Build System
          Assignee: unassignedbugs at nondot.org
          Reporter: chinoune.mehdi at hotmail.com
                CC: David.Truby at arm.com, jperier at nvidia.com,
                    llvm-bugs at lists.llvm.org, sscalpone at nvidia.com

I got these error messages when trying to build flang with gcc-10:

 In file included from
/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/Fortran-parsers.cpp:38:

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/Fortran-parsers.cpp:
In static member function `static std::optional<_Tp>
Fortran::parser::Parser<A>::Parse(Fortran::parser::ParseState&) [with A =
Fortran::parser::ProcComponentDefStmt]`:

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/Fortran-parsers.cpp:447:1:
  in `constexpr` expansion of
`Fortran::parser::localRecovery(Fortran::parser::MessageFixedText, PA, PB)
[with PA = Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > >; PB =
Fortran::parser::SkipTo<'\012'>](Fortran::parser::operator>><Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > >(((const char*)"::"),
Fortran::parser::nonemptyList<Fortran::parser::Parser<Fortran::parser::ProcDecl>
>(Fortran::parser::procDecl)), Fortran::parser::SkipTo<'\012'>())`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/basic-parsers.h:812:18:
  in `constexpr` expansion of `Fortran::parser::recovery(PA, PB) [with PA =
Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > >; PB =
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > > >](Fortran::parser::operator>>(PA,
PB) [with PA = Fortran::parser::SkipTo<'\012'>; PB =
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > >
>](Fortran::parser::defaulted<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > >
>(Fortran::parser::operator>><Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > >((Fortran::parser::cut, const
Fortran::parser::FixedParser<false>()), pa))))`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/basic-parsers.h:391:39:
  in `constexpr` expansion of
`Fortran::parser::RecoveryParser<Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > >,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > > > >(pa,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > > >(pb))`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/basic-parsers.h:339:59:
  in `constexpr` expansion of
`((Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > >
>*)(&((Fortran::parser::RecoveryParser<Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > >,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > > >
>*)this)->Fortran::parser::RecoveryParser<Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > >,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > > >
>::pb_))->Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > > >::SequenceParser(pb)`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/basic-parsers.h:241:13:
  in `constexpr` expansion of
`((Fortran::parser::SkipTo<'\012'>*)(&((Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > >
>*)this)->Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > >
>::pa_))->Fortran::parser::SkipTo<'\012'>::SkipTo(<anonymous>.Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > > >::pa_)`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/type-parser-implementation.h:28:41:
error: accessing uninitialized member
`Fortran::parser::RecoveryParser<Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > >,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::ProcDecl>,
Fortran::parser::TokenStringMatch<> > > > > > >::pb_`
    28 |     static constexpr auto parser{(pexpr)}; \
       |                                         ^

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/type-parser-implementation.h:33:3:
note: in expansion of macro `TYPE_PARSER`
    33 |   TYPE_PARSER(CONTEXT_PARSER((contextText), (pexpr)))
       |   ^~~~~~~~~~~

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/Fortran-parsers.cpp:447:1:
note: in expansion of macro `TYPE_CONTEXT_PARSER`
   447 | TYPE_CONTEXT_PARSER("PROCEDURE component definition statement"_en_US,
       | ^~~~~~~~~~~~~~~~~~~

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/Fortran-parsers.cpp:
In static member function `static std::optional<_Tp>
Fortran::parser::Parser<A>::Parse(Fortran::parser::ParseState&) [with A =
Fortran::parser::TypeBoundProcedureStmt]`:

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/Fortran-parsers.cpp:505:1:
  in `constexpr` expansion of
`Fortran::parser::localRecovery(Fortran::parser::MessageFixedText, PA, PB)
[with PA = Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > >; PB =
Fortran::parser::SkipTo<'\012'>](Fortran::parser::operator>><Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > >(((const char*)"::"),
Fortran::parser::listOfNames), Fortran::parser::SkipTo<'\012'>())`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/basic-parsers.h:812:18:
  in `constexpr` expansion of `Fortran::parser::recovery(PA, PB) [with PA =
Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > >; PB =
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > >
>](Fortran::parser::operator>>(PA, PB) [with PA =
Fortran::parser::SkipTo<'\012'>; PB =
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > >
>](Fortran::parser::defaulted<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > >
>(Fortran::parser::operator>><Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > >((Fortran::parser::cut, const
Fortran::parser::FixedParser<false>()), pa))))`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/basic-parsers.h:391:39:
  in `constexpr` expansion of
`Fortran::parser::RecoveryParser<Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > >,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > > > >(pa,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > > >(pb))`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/basic-parsers.h:339:59:
  in `constexpr` expansion of
`((Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > >
>*)(&((Fortran::parser::RecoveryParser<Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > >,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > > >
>*)this)->Fortran::parser::RecoveryParser<Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > >,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > > >
>::pb_))->Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > > >::SequenceParser(pb)`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/basic-parsers.h:241:13:
  in `constexpr` expansion of
`((Fortran::parser::SkipTo<'\012'>*)(&((Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > >
>*)this)->Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > >
>::pa_))->Fortran::parser::SkipTo<'\012'>::SkipTo(<anonymous>.Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > > >::pa_)`

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/type-parser-implementation.h:28:41:
error: accessing uninitialized member
`Fortran::parser::RecoveryParser<Fortran::parser::WithMessageParser<Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > >,
Fortran::parser::SequenceParser<Fortran::parser::SkipTo<'\012'>,
Fortran::parser::DefaultedParser<Fortran::parser::SequenceParser<Fortran::parser::FixedParser<false>,
Fortran::parser::SequenceParser<Fortran::parser::TokenStringMatch<>,
Fortran::parser::WithMessageParser<Fortran::parser::NonemptySeparated<Fortran::parser::Parser<Fortran::parser::Name>,
Fortran::parser::TokenStringMatch<> > > > > > > >::pb_`
    28 |     static constexpr auto parser{(pexpr)}; \
       |                                         ^

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/type-parser-implementation.h:33:3:
note: in expansion of macro `TYPE_PARSER`
    33 |   TYPE_PARSER(CONTEXT_PARSER((contextText), (pexpr)))
       |   ^~~~~~~~~~~

/home/runner/work/llvm-project/llvm-project/flang/lib/Parser/Fortran-parsers.cpp:505:1:
note: in expansion of macro `TYPE_CONTEXT_PARSER`
   505 | TYPE_CONTEXT_PARSER("type bound PROCEDURE statement"_en_US,
       | ^~~~~~~~~~~~~~~~~~~

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20200422/3e18401a/attachment-0001.html>


More information about the llvm-bugs mailing list