summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Basic/Targets.cpp3
-rw-r--r--clang/test/CodeGen/arm-asm-warn.c1
2 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 496893885c6..baf83c1a14c 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -3897,8 +3897,7 @@ public:
case 'r': {
switch (Modifier) {
default:
- return isInOut || (isOutput && Size >= 32) ||
- (!isOutput && !isInOut && Size <= 32);
+ return (isInOut || isOutput || Size <= 32);
case 'q':
// A register of size 32 cannot fit a vector type.
return false;
diff --git a/clang/test/CodeGen/arm-asm-warn.c b/clang/test/CodeGen/arm-asm-warn.c
index 9b52dd695a5..dbcbb38a749 100644
--- a/clang/test/CodeGen/arm-asm-warn.c
+++ b/clang/test/CodeGen/arm-asm-warn.c
@@ -12,6 +12,7 @@ void t1(int x, char y) {
: "+r" (x),
"+r" (y)
:);
+ __asm__ volatile("ldrb %0, [%1]" : "=r" (y) : "r" (x)); // no warning
}
// <rdar://problem/12284092>
OpenPOWER on IntegriCloud