[patch] explicitly specify -std=gnu89 for gdb.cp/inline-break.exp

David Blaikie dblaikie@gmail.com
Sun Apr 13 07:08:00 GMT 2014


On Fri, Apr 11, 2014 at 7:59 PM, Andrew Pinski <pinskia@gmail.com> wrote:
> On Fri, Apr 11, 2014 at 4:58 PM, David Blaikie <dblaikie@gmail.com> wrote:
>> This test is intending to use gnu style inline rather than the
>> standard c99 inline semantics. Clang defaults to c99 and the test
>> breaks for this (and other - there's an inlining debug info quality
>> bug here too - I'll file a bug and kfail the remaining failures in a
>> separate patch) reason.
>
> Or better yet, use the gnu_inline attribute on those functions.

Ah, good plan - patch attached for that fix instead.

Though at this point, I'd consider removing the GNUC conditional - for
this test to be meaningful the compiler must support gnu inlining
semantics. Are there compilers that support those semantics but don't
support GCC attribute syntax and the gnu_inline attribute in
particular?

Removing the conditional would cause any compiler that doesn't support
the attributes to just fail to compile, marking the test as untested
rather than producing failures.
-------------- next part --------------
commit a0f7d916bf274325b1535d7f4eade43953cb2bf2
Author: David Blaikie <dblaikie@gmail.com>
Date:   Sun Apr 13 00:01:21 2014 -0700

    Use attribute to specify the required inlining semantics
    
    As suggested by Andrew Pinski.
    
    gdb/testsuite/
    	* gdb.opt/inline-break.c: Fix clang compatibility by specifying
    	gnu_inline semantics via attribute.
    	* gdb.opt/inline-break.exp: Remove -std=c89 now that the test source
    	explicitly specifies the required semantics.

diff --git gdb/testsuite/ChangeLog gdb/testsuite/ChangeLog
index 730c116..44b2eeb 100644
--- gdb/testsuite/ChangeLog
+++ gdb/testsuite/ChangeLog
@@ -6,6 +6,13 @@
 
 2014-04-11  David Blaikie  <dblaikie@gmail.com>
 
+	* gdb.opt/inline-break.c: Fix clang compatibility by specifying
+	gnu_inline semantics via attribute.
+	* gdb.opt/inline-break.exp: Remove -std=c89 now that the test source
+	explicitly specifies the required semantics.
+
+2014-04-11  David Blaikie  <dblaikie@gmail.com>
+
 	* gdb.opt/inline-break.exp: Explicitly specify -std=gnu89 to
 	override Clang's default.
 
diff --git gdb/testsuite/gdb.opt/inline-break.c gdb/testsuite/gdb.opt/inline-break.c
index 9513eec..f8a9ec9 100644
--- gdb/testsuite/gdb.opt/inline-break.c
+++ gdb/testsuite/gdb.opt/inline-break.c
@@ -19,7 +19,7 @@
    this file, and should be regenerated if this file is modified.  */
 
 #ifdef __GNUC__
-# define ATTR __attribute__((always_inline))
+# define ATTR __attribute__((gnu_inline)) __attribute__((always_inline))
 #else
 # define ATTR
 #endif
diff --git gdb/testsuite/gdb.opt/inline-break.exp gdb/testsuite/gdb.opt/inline-break.exp
index 4ff379a..21c958a 100644
--- gdb/testsuite/gdb.opt/inline-break.exp
+++ gdb/testsuite/gdb.opt/inline-break.exp
@@ -19,10 +19,8 @@
 
 standard_testfile
 
-# Explicitly specify gnu89 for gnu inline semantics to override Clang's default
-# of c99.
 if { [prepare_for_testing $testfile.exp $testfile $srcfile \
-          {debug optimize=-O2 additional_flags=-Winline additional_flags=-std=gnu89}] } {
+          {debug optimize=-O2 additional_flags=-Winline}] } {
     return -1
 }
 


More information about the Gdb-patches mailing list