Merge "Move to C++ for debuggerd."
diff --git a/debuggerd/Android.mk b/debuggerd/Android.mk
index 2fe7c7a..422a86a 100644
--- a/debuggerd/Android.mk
+++ b/debuggerd/Android.mk
@@ -6,14 +6,20 @@
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES:= \
-	backtrace.c \
-	debuggerd.c \
-	getevent.c \
-	tombstone.c \
-	utility.c \
-	$(TARGET_ARCH)/machine.c
+	backtrace.cpp \
+	debuggerd.cpp \
+	getevent.cpp \
+	tombstone.cpp \
+	utility.cpp \
+	$(TARGET_ARCH)/machine.cpp \
 
-LOCAL_CFLAGS := -Wall -Wno-unused-parameter -std=gnu99
+LOCAL_CONLYFLAGS := -std=gnu99
+LOCAL_CPPFLAGS := -std=gnu++11
+LOCAL_CFLAGS := \
+	-Wall \
+	-Wno-array-bounds \
+	-Werror \
+
 LOCAL_MODULE := debuggerd
 
 ifeq ($(ARCH_ARM_HAVE_VFP),true)
@@ -30,6 +36,8 @@
 	liblog \
 	libselinux \
 
+include external/stlport/libstlport.mk
+
 include $(BUILD_EXECUTABLE)
 
 include $(CLEAR_VARS)
@@ -38,7 +46,7 @@
 LOCAL_MODULE := crasher
 LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
 LOCAL_MODULE_TAGS := optional
-LOCAL_CFLAGS += -fstack-protector-all
+LOCAL_CFLAGS += -fstack-protector-all -Wno-unused-parameter -Wno-free-nonheap-object
 #LOCAL_FORCE_STATIC_EXECUTABLE := true
 LOCAL_SHARED_LIBRARIES := libcutils liblog libc
 include $(BUILD_EXECUTABLE)
diff --git a/debuggerd/arm/machine.c b/debuggerd/arm/machine.cpp
similarity index 100%
rename from debuggerd/arm/machine.c
rename to debuggerd/arm/machine.cpp
diff --git a/debuggerd/backtrace.c b/debuggerd/backtrace.cpp
similarity index 100%
rename from debuggerd/backtrace.c
rename to debuggerd/backtrace.cpp
diff --git a/debuggerd/debuggerd.c b/debuggerd/debuggerd.cpp
similarity index 98%
rename from debuggerd/debuggerd.c
rename to debuggerd/debuggerd.cpp
index 4fd0312..a9f59c8 100644
--- a/debuggerd/debuggerd.c
+++ b/debuggerd/debuggerd.cpp
@@ -123,7 +123,7 @@
         int _       = -dit;
         int ___     = 3*_;
         int _______ = 7*_;
-        const signed char codes[] = {
+        const int codes[] = {
            dit,_,dit,_,dit,___,dah,_,dah,_,dah,___,dit,_,dit,_,dit,_______
         };
         size_t s = 0;
@@ -132,7 +132,7 @@
         init_debug_led();
         enable_debug_led();
         do {
-            int timeout = abs((int)(codes[s])) * ms;
+            int timeout = abs(codes[s]) * ms;
             int res = get_event(&e, timeout);
             if (res == 0) {
                 if (e.type == EV_KEY
diff --git a/debuggerd/getevent.c b/debuggerd/getevent.cpp
similarity index 94%
rename from debuggerd/getevent.c
rename to debuggerd/getevent.cpp
index ebd070c..8d0b149 100644
--- a/debuggerd/getevent.c
+++ b/debuggerd/getevent.cpp
@@ -54,13 +54,13 @@
         idstr[0] = '\0';
     }
 
-    new_ufds = realloc(ufds, sizeof(ufds[0]) * (nfds + 1));
+    new_ufds = reinterpret_cast<pollfd*>(realloc(ufds, sizeof(ufds[0]) * (nfds + 1)));
     if(new_ufds == NULL) {
         fprintf(stderr, "out of memory\n");
         return -1;
     }
     ufds = new_ufds;
-    new_device_names = realloc(device_names, sizeof(device_names[0]) * (nfds + 1));
+    new_device_names = reinterpret_cast<char**>(realloc(device_names, sizeof(device_names[0]) * (nfds + 1)));
     if(new_device_names == NULL) {
         fprintf(stderr, "out of memory\n");
         return -1;
@@ -162,7 +162,7 @@
     const char *device_path = "/dev/input";
 
     nfds = 1;
-    ufds = calloc(1, sizeof(ufds[0]));
+    ufds = reinterpret_cast<pollfd*>(calloc(1, sizeof(ufds[0])));
     ufds[0].fd = inotify_init();
     ufds[0].events = POLLIN;
 
diff --git a/debuggerd/mips/machine.c b/debuggerd/mips/machine.cpp
similarity index 100%
rename from debuggerd/mips/machine.c
rename to debuggerd/mips/machine.cpp
diff --git a/debuggerd/tombstone.c b/debuggerd/tombstone.cpp
similarity index 100%
rename from debuggerd/tombstone.c
rename to debuggerd/tombstone.cpp
diff --git a/debuggerd/utility.c b/debuggerd/utility.cpp
similarity index 100%
rename from debuggerd/utility.c
rename to debuggerd/utility.cpp
diff --git a/debuggerd/x86/machine.c b/debuggerd/x86/machine.cpp
similarity index 100%
rename from debuggerd/x86/machine.c
rename to debuggerd/x86/machine.cpp