diff --git gdb/testsuite/ChangeLog gdb/testsuite/ChangeLog
index 5fca9d2..2989e20 100644
--- gdb/testsuite/ChangeLog
+++ gdb/testsuite/ChangeLog
@@ -1,3 +1,20 @@
+2014-04-08  David Blaikie  <dblaikie@gmail.com>
+
+	* lib/gdb.exp (has_unreliable_inline_asm_ordering): Utility function
+	for testing support for global or namespace scope inline asm ordering.
+	* gdb.dwarf2/dw2-abs-hi-pc.exp: Unsupported under the above condition.
+	* gdb.dwarf2/dw2-case-insensitive.exp: Ditto
+	* gdb.dwarf2/dw2-cp-infcall-ref-static.exp: Ditto
+	* gdb.dwarf2/dw2-entry-value.exp: Ditto
+	* gdb.dwarf2/dw2-ifort-parameter.exp: Ditto
+	* gdb.dwarf2/dw2-inline-param.exp: Ditto
+	* gdb.dwarf2/dw2-noloc.exp: Ditto
+	* gdb.dwarf2/dw2-param-error.exp: Ditto
+	* gdb.dwarf2/dw2-ref-missing-frame.exp: Ditto
+	* gdb.dwarf2/dw2-skip-prologue.exp: Ditto
+	* gdb.dwarf2/dw2-unresolved.exp: Ditto
+	* gdb.mi/dw2-ref-missing-frame.exp: Ditto
+
 2014-04-08  Pierre Muller  <muller@sourceware.org>
 
 	* gdb.base/printcmds.exp (test_artificial_arrays): Disable
diff --git gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
index 4ca16cf..81a6079 100644
--- gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
@@ -19,6 +19,11 @@ if {![dwarf2_support]} {
     return 0
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 standard_testfile
 set executable ${testfile}
 
diff --git gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp
index c18533c..a94c841 100644
--- gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp
@@ -19,6 +19,11 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 standard_testfile .c dw2-case-insensitive-debug.S
 
 if { [prepare_for_testing ${testfile}.exp ${testfile} \
diff --git gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp
index 0579fa4..ff74be0 100644
--- gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp
@@ -25,6 +25,11 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 standard_testfile .S dw2-cp-infcall-ref-static-main.c
 
 if { [prepare_for_testing ${testfile}.exp ${testfile} \
diff --git gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp
index d1f8e2f..69bb22f 100644
--- gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp
@@ -19,6 +19,11 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 if { [prepare_for_testing dw2-entry-value.exp "dw2-entry-value" {dw2-entry-value-main.c dw2-entry-value.S} {nodebug}] } {
     return -1
 }
diff --git gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
index 026e071..f909cb5 100644
--- gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
@@ -22,6 +22,11 @@ if {![dwarf2_support]} {
     return 0
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 standard_testfile .c dw2-ifort-parameter-dw.S
 
 # Make some DWARF for the test.
diff --git gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
index 82c3ed1..f0f9903 100644
--- gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
@@ -19,6 +19,11 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 standard_testfile .S dw2-inline-param-main.c
 
 if { [prepare_for_testing ${testfile}.exp "${testfile}" \
diff --git gdb/testsuite/gdb.dwarf2/dw2-noloc.exp gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
index 0b17bd4..80ba90a 100644
--- gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
@@ -19,6 +19,11 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 if { [prepare_for_testing dw2-noloc.exp "dw2-noloc" {dw2-noloc-main.c dw2-noloc.S} {nodebug}] } {
     return -1
 }
diff --git gdb/testsuite/gdb.dwarf2/dw2-param-error.exp gdb/testsuite/gdb.dwarf2/dw2-param-error.exp
index 11e8f03..0155234 100644
--- gdb/testsuite/gdb.dwarf2/dw2-param-error.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-param-error.exp
@@ -19,6 +19,11 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 standard_testfile .S dw2-param-error-main.c
 
 if { [prepare_for_testing ${testfile}.exp "${testfile}" \
diff --git gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp
index 37b2edf..f07a3f8 100644
--- gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp
@@ -19,6 +19,11 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 standard_testfile .S
 set srcfuncfile ${testfile}-func.c
 set srcmainfile ${testfile}-main.c
diff --git gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
index 7bea4cf..e350dd0 100644
--- gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
@@ -36,6 +36,11 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 standard_testfile
 set executable ${testfile}
 
diff --git gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
index 95d065c..2ffc4f3 100644
--- gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
+++ gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
@@ -19,6 +19,11 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 if { [prepare_for_testing dw2-unresolved.exp "dw2-unresolved" {dw2-unresolved-main.c dw2-unresolved.S} {nodebug}] } {
     return -1
 }
diff --git gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
index 967308f..836d152 100644
--- gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
+++ gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
@@ -22,6 +22,11 @@ if {![dwarf2_support]} {
     return 0
 }
 
+if [has_unreliable_inline_asm_ordering] {
+    unsupported "Compiler doesn't guarantee ordering of global inline asm relative to other entities"
+    return 0
+}
+
 standard_testfile .S dw2-ref-missing-frame-func.c dw2-ref-missing-frame-main.c
 set objsfile [standard_output_file ${testfile}.o]
 set objfuncfile [standard_output_file ${testfile}-func.o]
diff --git gdb/testsuite/lib/gdb.exp gdb/testsuite/lib/gdb.exp
index 73e935a..c668c50 100644
--- gdb/testsuite/lib/gdb.exp
+++ gdb/testsuite/lib/gdb.exp
@@ -2592,6 +2592,10 @@ proc test_compiler_info { {compiler ""} } {
     return [string match $compiler $compiler_info]
 }
 
+proc has_unreliable_inline_asm_ordering { } {
+    return ![get_compiler_info] && [test_compiler_info clang*]
+}
+
 proc current_target_name { } {
     global target_info
     if [info exists target_info(target,name)] {
