*san needs clang++ to link
diff --git a/CMakeLists.txt b/CMakeLists.txt
index db0c41f..682b5ab 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2320,7 +2320,7 @@
src/core/lib/surface/completion_queue.c
src/core/lib/surface/completion_queue_factory.c
src/core/lib/surface/event_string.c
- src/core/lib/surface/lame_client.c
+ src/core/lib/surface/lame_client.cc
src/core/lib/surface/metadata_array.c
src/core/lib/surface/server.c
src/core/lib/surface/validate_metadata.c
@@ -3348,7 +3348,7 @@
src/core/lib/surface/completion_queue.c
src/core/lib/surface/completion_queue_factory.c
src/core/lib/surface/event_string.c
- src/core/lib/surface/lame_client.c
+ src/core/lib/surface/lame_client.cc
src/core/lib/surface/metadata_array.c
src/core/lib/surface/server.c
src/core/lib/surface/validate_metadata.c
diff --git a/Makefile b/Makefile
index e6726cb..a55e984 100644
--- a/Makefile
+++ b/Makefile
@@ -99,7 +99,7 @@
REQUIRE_CUSTOM_LIBRARIES_asan-trace-cmp = 1
CC_asan-trace-cmp = clang
CXX_asan-trace-cmp = clang++
-LD_asan-trace-cmp = clang
+LD_asan-trace-cmp = clang++
LDXX_asan-trace-cmp = clang++
CPPFLAGS_asan-trace-cmp = -O0 -fsanitize-coverage=edge -fsanitize-coverage=trace-cmp -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
LDFLAGS_asan-trace-cmp = -fsanitize=address
@@ -116,7 +116,7 @@
REQUIRE_CUSTOM_LIBRARIES_asan = 1
CC_asan = clang
CXX_asan = clang++
-LD_asan = clang
+LD_asan = clang++
LDXX_asan = clang++
CPPFLAGS_asan = -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
LDFLAGS_asan = -fsanitize=address
@@ -125,7 +125,7 @@
REQUIRE_CUSTOM_LIBRARIES_msan = 1
CC_msan = clang
CXX_msan = clang++
-LD_msan = clang
+LD_msan = clang++
LDXX_msan = clang++
CPPFLAGS_msan = -O0 -fsanitize-coverage=edge -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie -DGPR_NO_DIRECT_SYSCALLS
LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,)
@@ -152,7 +152,7 @@
REQUIRE_CUSTOM_LIBRARIES_asan-noleaks = 1
CC_asan-noleaks = clang
CXX_asan-noleaks = clang++
-LD_asan-noleaks = clang
+LD_asan-noleaks = clang++
LDXX_asan-noleaks = clang++
CPPFLAGS_asan-noleaks = -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
LDFLAGS_asan-noleaks = -fsanitize=address
@@ -161,7 +161,7 @@
REQUIRE_CUSTOM_LIBRARIES_ubsan = 1
CC_ubsan = clang
CXX_ubsan = clang++
-LD_ubsan = clang
+LD_ubsan = clang++
LDXX_ubsan = clang++
CPPFLAGS_ubsan = -O0 -fsanitize-coverage=edge -fsanitize=undefined -fno-omit-frame-pointer -Wno-unused-command-line-argument -Wvarargs
LDFLAGS_ubsan = -fsanitize=undefined,unsigned-integer-overflow
@@ -171,7 +171,7 @@
REQUIRE_CUSTOM_LIBRARIES_tsan = 1
CC_tsan = clang
CXX_tsan = clang++
-LD_tsan = clang
+LD_tsan = clang++
LDXX_tsan = clang++
CPPFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
LDFLAGS_tsan = -fsanitize=thread
@@ -4177,7 +4177,7 @@
src/core/lib/surface/completion_queue.c \
src/core/lib/surface/completion_queue_factory.c \
src/core/lib/surface/event_string.c \
- src/core/lib/surface/lame_client.c \
+ src/core/lib/surface/lame_client.cc \
src/core/lib/surface/metadata_array.c \
src/core/lib/surface/server.c \
src/core/lib/surface/validate_metadata.c \
@@ -5205,7 +5205,7 @@
src/core/lib/surface/completion_queue.c \
src/core/lib/surface/completion_queue_factory.c \
src/core/lib/surface/event_string.c \
- src/core/lib/surface/lame_client.c \
+ src/core/lib/surface/lame_client.cc \
src/core/lib/surface/metadata_array.c \
src/core/lib/surface/server.c \
src/core/lib/surface/validate_metadata.c \
diff --git a/build.yaml b/build.yaml
index f2ea2b1..f80c259 100644
--- a/build.yaml
+++ b/build.yaml
@@ -4288,7 +4288,7 @@
CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer
-Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
CXX: clang++
- LD: clang
+ LD: clang++
LDFLAGS: -fsanitize=address
LDXX: clang++
compile_the_world: true
@@ -4300,7 +4300,7 @@
CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer
-Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
CXX: clang++
- LD: clang
+ LD: clang++
LDFLAGS: -fsanitize=address
LDXX: clang++
compile_the_world: true
@@ -4311,7 +4311,7 @@
CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize-coverage=trace-cmp -fsanitize=address
-fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
CXX: clang++
- LD: clang
+ LD: clang++
LDFLAGS: -fsanitize=address
LDXX: clang++
compile_the_world: true
@@ -4355,7 +4355,7 @@
-Wno-unused-command-line-argument -fPIE -pie -DGPR_NO_DIRECT_SYSCALLS
CXX: clang++
DEFINES: NDEBUG
- LD: clang
+ LD: clang++
LDFLAGS: -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1
-fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,)
LDXX: clang++
@@ -4376,7 +4376,7 @@
-DGPR_NO_DIRECT_SYSCALLS
CXX: clang++
DEFINES: GRPC_TSAN
- LD: clang
+ LD: clang++
LDFLAGS: -fsanitize=thread
LDXX: clang++
compile_the_world: true
@@ -4388,7 +4388,7 @@
-Wno-unused-command-line-argument -Wvarargs
CXX: clang++
DEFINES: NDEBUG
- LD: clang
+ LD: clang++
LDFLAGS: -fsanitize=undefined,unsigned-integer-overflow
LDXX: clang++
compile_the_world: true
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 209d544..a4750f5 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -1099,7 +1099,7 @@
src/core/lib/surface/event_string.c \
src/core/lib/surface/event_string.h \
src/core/lib/surface/init.h \
-src/core/lib/surface/lame_client.c \
+src/core/lib/surface/lame_client.cc \
src/core/lib/surface/lame_client.h \
src/core/lib/surface/metadata_array.c \
src/core/lib/surface/server.c \
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
index caa22a0..e364bd4 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
@@ -787,7 +787,7 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\event_string.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\metadata_array.c">
</ClCompile>
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
index 6fc1c96..ed104a9 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
@@ -442,7 +442,7 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\event_string.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.cc">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\metadata_array.c">
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
index 6748181..fdebb81 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
@@ -771,7 +771,7 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\event_string.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\metadata_array.c">
</ClCompile>
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
index 2b9a5b1..6ffde5c 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
@@ -427,7 +427,7 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\event_string.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.cc">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\metadata_array.c">