Remove warning suppressions and fix many casting bugs

This change removes most warning suppressions, in particular
from production code. In the past we inherit a bunch of -Wno-xxx
suppressions required to build gtest and libprotobuf headers.
Doing so, however, caused the suppressions to propagate back to
the translation units that were including any protobuf header
or any auto-generated .pb.h stub.
This change moves the gtest and probobuf header to be a
system include (-isystem vs -I). Doing so implicitly blacklists
any compiler warning on the headers.
This CL then re-enables warnings and deals with the fall out of
fixes that came out of this.

Bug: 77316877
Test: pefetto_unittests / perfetto_integrationtests
Change-Id: I3a01852ebf7d0b9bf19658ddf117209d129c70be
diff --git a/Android.bp b/Android.bp
index c3522ff..91d8a96 100644
--- a/Android.bp
+++ b/Android.bp
@@ -35,6 +35,7 @@
     "src/base/temp_file.cc",
     "src/base/thread_checker.cc",
     "src/base/unix_task_runner.cc",
+    "src/base/virtual_destructors.cc",
     "src/base/watchdog_posix.cc",
     "src/ftrace_reader/atrace_wrapper.cc",
     "src/ftrace_reader/cpu_reader.cc",
@@ -52,6 +53,7 @@
     "src/ipc/host_impl.cc",
     "src/ipc/service_proxy.cc",
     "src/ipc/unix_socket.cc",
+    "src/ipc/virtual_destructors.cc",
     "src/process_stats/file_utils.cc",
     "src/process_stats/procfs_utils.cc",
     "src/protozero/message.cc",
@@ -88,6 +90,7 @@
     "src/tracing/core/trace_config.cc",
     "src/tracing/core/trace_packet.cc",
     "src/tracing/core/trace_writer_impl.cc",
+    "src/tracing/core/virtual_destructors.cc",
   ],
   shared_libs: [
     "liblog",
@@ -142,6 +145,7 @@
     "src/base/temp_file.cc",
     "src/base/thread_checker.cc",
     "src/base/unix_task_runner.cc",
+    "src/base/virtual_destructors.cc",
     "src/base/watchdog_posix.cc",
     "src/ipc/buffered_frame_deserializer.cc",
     "src/ipc/client_impl.cc",
@@ -149,6 +153,7 @@
     "src/ipc/host_impl.cc",
     "src/ipc/service_proxy.cc",
     "src/ipc/unix_socket.cc",
+    "src/ipc/virtual_destructors.cc",
     "src/perfetto_cmd/main.cc",
     "src/perfetto_cmd/perfetto_cmd.cc",
     "src/perfetto_cmd/rate_limiter.cc",
@@ -176,6 +181,7 @@
     "src/tracing/core/trace_config.cc",
     "src/tracing/core/trace_packet.cc",
     "src/tracing/core/trace_writer_impl.cc",
+    "src/tracing/core/virtual_destructors.cc",
     "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
     "src/tracing/ipc/default_socket.cc",
     "src/tracing/ipc/posix_shared_memory.cc",
@@ -264,6 +270,7 @@
     "src/base/test/vm_test_utils.cc",
     "src/base/thread_checker.cc",
     "src/base/unix_task_runner.cc",
+    "src/base/virtual_destructors.cc",
     "src/base/watchdog_posix.cc",
     "src/ftrace_reader/atrace_wrapper.cc",
     "src/ftrace_reader/cpu_reader.cc",
@@ -285,6 +292,7 @@
     "src/ipc/host_impl.cc",
     "src/ipc/service_proxy.cc",
     "src/ipc/unix_socket.cc",
+    "src/ipc/virtual_destructors.cc",
     "src/process_stats/file_utils.cc",
     "src/process_stats/procfs_utils.cc",
     "src/protozero/message.cc",
@@ -319,6 +327,7 @@
     "src/tracing/core/trace_config.cc",
     "src/tracing/core/trace_packet.cc",
     "src/tracing/core/trace_writer_impl.cc",
+    "src/tracing/core/virtual_destructors.cc",
     "test/end_to_end_integrationtest.cc",
     "test/fake_producer.cc",
     "test/task_runner_thread.cc",
@@ -3398,6 +3407,7 @@
     "src/base/temp_file.cc",
     "src/base/thread_checker.cc",
     "src/base/unix_task_runner.cc",
+    "src/base/virtual_destructors.cc",
     "src/base/watchdog_posix.cc",
     "src/ipc/buffered_frame_deserializer.cc",
     "src/ipc/client_impl.cc",
@@ -3405,6 +3415,7 @@
     "src/ipc/host_impl.cc",
     "src/ipc/service_proxy.cc",
     "src/ipc/unix_socket.cc",
+    "src/ipc/virtual_destructors.cc",
     "src/protozero/message.cc",
     "src/protozero/message_handle.cc",
     "src/protozero/proto_utils.cc",
@@ -3429,6 +3440,7 @@
     "src/tracing/core/trace_config.cc",
     "src/tracing/core/trace_packet.cc",
     "src/tracing/core/trace_writer_impl.cc",
+    "src/tracing/core/virtual_destructors.cc",
     "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
     "src/tracing/ipc/default_socket.cc",
     "src/tracing/ipc/posix_shared_memory.cc",
@@ -3572,6 +3584,7 @@
     "src/base/time_unittest.cc",
     "src/base/unix_task_runner.cc",
     "src/base/utils_unittest.cc",
+    "src/base/virtual_destructors.cc",
     "src/base/watchdog_posix.cc",
     "src/base/watchdog_unittest.cc",
     "src/base/weak_ptr_unittest.cc",
@@ -3607,6 +3620,7 @@
     "src/ipc/test/ipc_integrationtest.cc",
     "src/ipc/unix_socket.cc",
     "src/ipc/unix_socket_unittest.cc",
+    "src/ipc/virtual_destructors.cc",
     "src/perfetto_cmd/perfetto_cmd.cc",
     "src/perfetto_cmd/rate_limiter.cc",
     "src/perfetto_cmd/rate_limiter_unittest.cc",
@@ -3668,6 +3682,7 @@
     "src/tracing/core/trace_packet_unittest.cc",
     "src/tracing/core/trace_writer_impl.cc",
     "src/tracing/core/trace_writer_impl_unittest.cc",
+    "src/tracing/core/virtual_destructors.cc",
     "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
     "src/tracing/ipc/default_socket.cc",
     "src/tracing/ipc/posix_shared_memory.cc",