aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hines <srhines@google.com>2016-04-26 01:23:54 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2016-04-26 01:23:54 +0000
commitfb911ef00d0d78acf86c74a73c7c5a6ff600b0b2 (patch)
tree2a1efac90de9462d8b111a78511f5e3104965e80
parent7d86a89a16598fe21fc25d8c99eed182e39848a9 (diff)
parent5f7649cd94fdf97a6891e94cb4584af377323b20 (diff)
downloadmdnsresponder-nougat-mr1-wear-release.tar.gz
* changes: Enable builds with Clang. Switch to a volatile store to a NULL pointer.
-rw-r--r--Android.mk6
-rw-r--r--mDNSShared/uds_daemon.c2
2 files changed, 1 insertions, 7 deletions
diff --git a/Android.mk b/Android.mk
index 2b1e85c..5d6160a 100644
--- a/Android.mk
+++ b/Android.mk
@@ -34,12 +34,6 @@ commonFlags := \
include $(CLEAR_VARS)
-# uds_daemon.c explicitly dereferences a non-volatile null pointer. Clang rather
-# unhelpfully says "I know what you're trying to do, but I'm going to optimize
-# it away anyway". There's no way to disable this behavior, so just stick with
-# gcc.
-LOCAL_CLANG := false
-
LOCAL_SRC_FILES := mDNSPosix/PosixDaemon.c \
mDNSPosix/mDNSPosix.c \
mDNSPosix/mDNSUNP.c \
diff --git a/mDNSShared/uds_daemon.c b/mDNSShared/uds_daemon.c
index 59a76c9..ad5f943 100644
--- a/mDNSShared/uds_daemon.c
+++ b/mDNSShared/uds_daemon.c
@@ -287,7 +287,7 @@ mDNSexport DNameListElem *AutoBrowseDomains; // List created from those local-o
mDNSlocal void FatalError(char *errmsg)
{
LogMsg("%s: %s", errmsg, dnssd_strerror(dnssd_errno));
- *(long*)0 = 0; // On OS X abort() doesn't generate a crash log, but writing to zero does
+ *(volatile long*)0 = 0; // On OS X abort() doesn't generate a crash log, but writing to zero does
abort(); // On platforms where writing to zero doesn't generate an exception, abort instead
}