================
@@ -0,0 +1,27 @@
+// RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s
+
+// CHECK: extern "C" int printf(const char *, ...);
+extern "C" int printf(const char *...);
+
+// CHECK: extern "C++" {
----------------
temyurchenko wrote:

> Oofda, there are differences between the braced and non-braced versions, so 
> ideally, we want to reproduce exactly what was in the user's source to avoid 
> accidentally changing the meaning of code

You are completely right, my bad. I'll work on fixing this. 

> z, y, and z are external, a, b, and c are not: https://godbolt.org/z/evG9KPKMM

I believe, they all have external linkage. However, x, y and z are also 
definitions, while a, b, and c are just declarations. So, for example, you can 
reference `x` from another translation unit and the value will be `0`. 

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

Reply via email to