[PATCH] D119051: Extend the C++03 definition of POD to include defaulted functions

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 9 09:37:49 PDT 2022


aaron.ballman added a comment.

Oh wow that's an awful lot of pings without any response; I'm very sorry you had that experience, so thank you for tagging me to try to get this unstuck!

The precommit CI test failures definitely look relevant and should be fixed up.



================
Comment at: clang/include/clang/Basic/LangOptions.def:219
 BENIGN_LANGOPT(AccessControl     , 1, 1, "C++ access control")
+LANGOPT(DefaultedSMFArePOD, 1, 0, "Defaulted Special Members are allowed on POD types")
 LANGOPT(CharIsSigned      , 1, 1, "signed char")
----------------



================
Comment at: clang/include/clang/Driver/Options.td:1116
   PosFlag<SetTrue>>;
+defm defaulted_smf_are_pod : BoolFOption<"defaulted-smf-are-pod",
+  LangOpts<"DefaultedSMFArePOD">, DefaultFalse,
----------------
Lol, well that's going to be fun when said out loud -- I come up with "defaulted smurfs are pod". :-D


================
Comment at: clang/include/clang/Driver/Options.td:1118-1119
+  LangOpts<"DefaultedSMFArePOD">, DefaultFalse,
+  NegFlag<SetFalse, [], "Defaulted Special Member Functions are not considered POD for ABI and < C++11 language tests">,
+  PosFlag<SetTrue, [CC1Option], "Defaulted Special Member Functions are considered POD for ABI and < C++11 language tests">>;
 def falign_functions : Flag<["-"], "falign-functions">, Group<f_Group>;
----------------



================
Comment at: clang/lib/Driver/ToolChains/Clang.cpp:5592
+    StringRef Ver = A->getValue();
+    CmdArgs.push_back(Args.MakeArgString("-fclang-abi-compat=" + Ver));
+    unsigned Num;
----------------
Are we going to get duplicates passed to -cc1, as we also do: https://github.com/llvm/llvm-project/blob/main/clang/lib/Driver/ToolChains/Clang.cpp#L5645


================
Comment at: clang/lib/Driver/ToolChains/Clang.cpp:5594
+    unsigned Num;
+    if (!Ver.consumeInteger(10, Num) && Num <= 13)
+      DefaultedSMFArePOD = false;
----------------
Is Clang 13 still the correct thing to test for here, or should this be 16 these days?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119051/new/

https://reviews.llvm.org/D119051



More information about the cfe-commits mailing list