Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-89363

moc: Cannot handle "broken" raw-string

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.15.2
    • Fix Version/s: None
    • Component/s: Build tools: moc
    • Labels:
      None

      Description

      We had a little mistake in our test code and found that moc cannot handle \n or \" in raw-strings.

      #include <QtCore/QObject>
      
      class Dummy : public QObject
      {
              Q_OBJECT
      
      public:
              Dummy()
              {
                      const QByteArray data(R"({
                                                                               "    \"example\": true\n"
                                                                               "}\n");
                                                                               })");
              }
      };
      
      int main()
      {
              Dummy d;
              return 0;
      }
      

      The compiler will build it and tries to link it. But it fails with "error: undefined reference to 'vtable for XYZ" because moc cannot handle that and throws a warning instead an error.

      $ moc test.cpp
      test.cpp:0: Note: No relevant classes found. No output generated.
      

      Moc should handle that or fail with a better warning message.

        Attachments

          Issue Links

          For Gerrit Dashboard: QTBUG-89363
          # Subject Branch Project Status CR V

            Activity

              People

              Assignee:
              fabiankosmale Fabian Kosmale
              Reporter:
              misery André Klitzing
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:

                  Gerrit Reviews

                  There is 1 open Gerrit change