================
@@ -13386,6 +13386,62 @@ void Sema::checkNonTrivialCUnion(QualType QT, 
SourceLocation Loc,
         .visit(QT, nullptr, false);
 }
 
+bool Sema::GloballyUniqueObjectMightBeAccidentallyDuplicated(
+    const VarDecl *dcl) {
+  if (!dcl || !getLangOpts().CPlusPlus)
+    return false;
+
+  // If an object is defined in a source file, its definition can't get
+  // duplicated since it will never appear in more than one TU.
+  if (dcl->getASTContext().getSourceManager().isInMainFile(dcl->getLocation()))
+    return false;
+
+  // We only need to warn if the definition is in a header file, so wait to
+  // diagnose until we've seen the definition.
+  if (!dcl->isThisDeclarationADefinition())
+    return false;
+
+  // If the variable we're looking at is a static local, then we actually care
+  // about the properties of the function containing it.
+  const ValueDecl *target = dcl;
+  // VarDecls and FunctionDecls have different functions for checking
+  // inline-ness, so we have to do it manually.
+  bool target_is_inline = dcl->isInline();
----------------
zmodem wrote:

nit: LLVM style prefers camelCase, even starting with a capital letter for 
variables (this affects `target` and `dcl` above too)

https://github.com/llvm/llvm-project/pull/117622
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to