<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help">
    <title>gmane.comp.gcc.help</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41530"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41529"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41528"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41527"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41526"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41525"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41524"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41523"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41522"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41521"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41520"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41519"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41518"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41517"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41516"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41515"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41514"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41513"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41512"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.help/41511"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41530">
    <title>Re: Unexpected behaviour printing twice the same variable</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41530</link>
    <description>&lt;pre&gt;


You didn't say, but you are presumably using an x86 in 32-bit mode.

In C, the float type is promoted to double when making a function call.
Your first call to printf takes the 80-bit 387 register, stores it to
the stack as a 64-bit double, and calls printf.  But before calling
printf the 80-bit register is stored on the stack as a 32-bit float,
since that is the variable's type.  For the second call to printf the
32-bit float is loaded from the stack into a 80-bit register, then
stored to the stack as a 64-bit double to pass to printf.

So the problem is the value is rounded one way when stored as a 64-bit
value and rounded a different way when stored as a 32-bit value.  That
is what you are seeing.

The fix is, as you discovered, to use -ffloat-store.  Or, if using GCC
4.5 or newer, to use -fexcess-precision=standard.  Or use -mfpmath=sse
to avoid the 80-bit registers entirely.

Ian

&lt;/pre&gt;</description>
    <dc:creator>Ian Lance Taylor</dc:creator>
    <dc:date>2012-05-16T21:59:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41529">
    <title>Adding a conditional statement in GCC</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41529</link>
    <description>&lt;pre&gt;Hello experts,
I have added a pass in GCC.
Here I am adding a conditional statement
Initially my code had both operands of the conditional statement as
local variables and it worked fine.
Then I replaced the local variable with a global variable and I get the error:
Internal compiler error in gimple_set_vuse: gimple.h 1504

Am using gcc4.7.0

My code is as follows:

tree var_decl = NULL;

static unsigned int gccwk_main(void)
{

   basic_block true_bb, join_bb;

   //COND WITH TEMP VAR
   tree tmp1, tmpv;
   gimple cond_stmt;
   tree int_assign;
   gimple assign;
   gimple cond_assign;
   edge e_cd, e_di, e_ci;

   basic_block bb_start = ENTRY_BLOCK_PTR-&amp;gt;next_bb;
   gimple_stmt_iterator gsi = gsi_start_bb(bb_start);


   if (!var_decl) {
       var_decl = build_decl(input_location, VAR_DECL,
get_identifier("aa_glob"),integer_type_node);
  }
   TREE_STATIC(var_decl) = 1;
   rest_of_decl_compilation(var_decl,1,0);
   DECL_INITIAL(var_decl) = build_int_cst(integer_type_node, 1);
&lt;/pre&gt;</description>
    <dc:creator>Sam K</dc:creator>
    <dc:date>2012-05-16T21:55:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41528">
    <title>Unexpected behaviour printing twice the same variable</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41528</link>
    <description>&lt;pre&gt;
Hello all,

This program has a strange behaviour, probably due to FP optimizations using
the -O1 or -O2 or -O3 (I can resolve it with the GCC compilation flag
-ffloat-store).
It should produce the same output twice (because it prints the same variable
in 2 consecutive lines), but it does not; there are some errors on the last
digits. Someone can explain me what happen?

Source:

http://old.nabble.com/file/p33858981/bug.c bug.c 


Compile:

gcc -O3 -o bug bug.c  

Output:

132.316432 132.316437
108.085940 108.085938
134.695360 134.695358
123.992232 123.992233


I tested it with the following systems:

Intel i5, Ubuntu Linaro, kernel 3.0.0-19-generic, GCC 4.6.1-9ubuntu3 
Intel i7, Ubuntu Linaro, kernel 2.6.38-15-generic, GCC 4.5.2-8ubuntu4

&lt;/pre&gt;</description>
    <dc:creator>RobertoCesco</dc:creator>
    <dc:date>2012-05-16T15:38:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41527">
    <title>Re: Complexity of gcc compiler</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41527</link>
    <description>&lt;pre&gt;

Most of the compiler is linear in the size of the input.  Some specific
optimization passes have a larger complexity.  Some optimization passes
are linear in the number of basic blocks or in the number of
pseudo-registers.  Register allocation is O(n^2) in the number of
pseudo-registers.

Ian

&lt;/pre&gt;</description>
    <dc:creator>Ian Lance Taylor</dc:creator>
    <dc:date>2012-05-16T13:52:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41526">
    <title>Complexity of gcc compiler</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41526</link>
    <description>&lt;pre&gt;
I am wondering what may be the COMPLEXITY of GCC compiler in big Oh 
notation or other notation. 
I have some intuition that lexical analyzer's complexity is O(n) and that of
parser is O(n^3). Optimization is NPC. Code generator might have some 
log(n) factor. 
Taking these things in accounts what is the time complexity of compilers
in general and GCC in particular.
Likewise space complexity may also be given thought?

-----
Vikram
&lt;/pre&gt;</description>
    <dc:creator>vikram_sp</dc:creator>
    <dc:date>2012-05-16T11:28:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41525">
    <title>Re: GCC 4.6.2 C++ thread cancellation issue</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41525</link>
    <description>&lt;pre&gt;
What evolving C++ standard?

The forced-unwind stuff was designed and implemented years ago, before
ISO C++ talked about threads, and even in the current C++ standard
there is no support for thread cancellation (because there was no
consensus how it should work.)  The forced-unwind behaviour was an
attempt to give sane semantics (for some value of sane) to something
not covered by any standard (at the time, and still not covered now.)


Which are?

It's hard to implement semantics that may or may not be publicly documented.

There was a POSIX-C++ working group which discussed thread
cancellation, but no consensus was reached and the working group
stalled.


On 15 May 2012 20:40, Mike Dalpee wrote:

Understood. But pthreads is a C API, so by using it with C++ you're
already writing non-portable code (it works well, almost invisibly, in
most cases, unfortunately thread-cancellation is one of the places the
non-portability show up.)


Indeed, which is why the GNU implementation uses an exception, as that
alrea&lt;/pre&gt;</description>
    <dc:creator>Jonathan Wakely</dc:creator>
    <dc:date>2012-05-15T21:58:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41524">
    <title>Re: Help with strange error</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41524</link>
    <description>&lt;pre&gt;
FWIW, if they sent an HTML email (or multipart mime email with an HTML
part) it would get rejected by the gcc-help list software and not show
up in the archives.

&lt;/pre&gt;</description>
    <dc:creator>Jonathan Wakely</dc:creator>
    <dc:date>2012-05-15T21:33:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41523">
    <title>Re: How do I disable warnings across versions?</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41523</link>
    <description>&lt;pre&gt;
GCC doesn't need to fix anything. ICC also defines its own macros
(but not in a consistent way), so that the user can test if they
are defined (if __ICC and/or __INTEL_COMPILER are defined, this
is ICC). The user just needs to know that.

&lt;/pre&gt;</description>
    <dc:creator>Vincent Lefevre</dc:creator>
    <dc:date>2012-05-15T20:52:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41522">
    <title>RE: GCC 4.6.2 C++ thread cancellation issue</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41522</link>
    <description>&lt;pre&gt;Just to be clear, I am using pthread's synchronous cancellation feature - i.e., cancellation can only occur at known "cancellation points", which are places at which the thread is waiting to be rescheduled.  So the cancellation is not asynchrounous with respect to thread execution.

Stack unwinding/destructor excecution does occur in the Solaris C++ implementation from the scope enclosing the cancellation point. In my view, this behavior is required to compose a correctly running program.  A very common approach to resource management in C++ programs is to use a constructor to "acquire" a resource and the destructor to "release" it.  Since a thread is just one part of a running program, being able to cancel a thread without running destructors would be (and for me, is) very bad, as it would hang acquired resources out to dry (such as a mutex lock, for instance) with disastrous results (deadlocks).  

Again in my view, the use of catch(...) is an undesireable practice; if you need something to happen no matte&lt;/pre&gt;</description>
    <dc:creator>Mike Dalpee</dc:creator>
    <dc:date>2012-05-15T19:40:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41521">
    <title>Re: Help with strange error</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41521</link>
    <description>&lt;pre&gt;
someone responded already thank you, I don't know why his response does not
show up here.  In any case, the problem is in the code where ELF assembler
code is being injected into it.  Unfortunately its beyond my pay grade to
fix it, but here it is in case anyone is looking for help on this in the
future or if someone knows how to fix it, please let me know.

--------------

#define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t.globl
" #name suffix "\n\t.type " #name suffix ",&amp;lt; at &amp;gt;function\n" #name suffix
":\n\t.cfi_startproc\n\t" code "\n\t.cfi_endproc\n\t.previous");
#define __ASM_GLOBAL_FUNC(name,code) __ASM_DEFINE_FUNC(name,"",code)
#define __ASM_NAME(name) name
#define __ASM_STDCALL(args) ""

/* From wine source */
#ifdef __i386__  /* thiscall functions are i386-specific */

#define THISCALL(func) __thiscall_ ## func
#define THISCALL_NAME(func) __ASM_NAME("__thiscall_" #func)
#define __thiscall __stdcall
#define DEFINE_THISCALL_WRAPPER(func,args) \
    extern void THISCALL(func)(void); \
  &lt;/pre&gt;</description>
    <dc:creator>SteveSchow</dc:creator>
    <dc:date>2012-05-15T18:56:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41520">
    <title>Re: Help with strange error</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41520</link>
    <description>&lt;pre&gt;
someone responded already thank you, I don't know why his response does not
show up here.  In any case, the problem is in the code where ELF assembler
code is being injected into it.  Unfortunately its beyond my pay grade to
fix it, but here it is in case anyone is looking for help on this in the
future or if someone knows how to fix it, please let me know.

--------------

#define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t.globl
" #name suffix "\n\t.type " #name suffix ",&amp;lt; at &amp;gt;function\n" #name suffix
":\n\t.cfi_startproc\n\t" code "\n\t.cfi_endproc\n\t.previous");
#define __ASM_GLOBAL_FUNC(name,code) __ASM_DEFINE_FUNC(name,"",code)
#define __ASM_NAME(name) name
#define __ASM_STDCALL(args) ""

/* From wine source */
#ifdef __i386__  /* thiscall functions are i386-specific */

#define THISCALL(func) __thiscall_ ## func
#define THISCALL_NAME(func) __ASM_NAME("__thiscall_" #func)
#define __thiscall __stdcall
#define DEFINE_THISCALL_WRAPPER(func,args) \
    extern void THISCALL(func)(void); \
  &lt;/pre&gt;</description>
    <dc:creator>SteveSchow</dc:creator>
    <dc:date>2012-05-15T18:55:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41519">
    <title>Re: Help with strange error</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41519</link>
    <description>&lt;pre&gt;

Your compiler is generating code that your assembler does not expect.
Or, your source code has asm statements that have pseudo-ops that your
assembler does not expect.  The errors suggest that you are passing ELF
assembler pseudo-ops to a non-ELF assembler.  The Darwin assembler is,
of course, not an ELF assembler.  You need to find out why either GCC or
your source code is expecting an ELF assembler.

Ian

&lt;/pre&gt;</description>
    <dc:creator>Ian Lance Taylor</dc:creator>
    <dc:date>2012-05-15T18:22:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41518">
    <title>Help with strange error</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41518</link>
    <description>&lt;pre&gt;
I have never seen this kind of error before and I'm not at all sure what I
can do to correct it.  If anyone has any ideas what would cause this error
so that I can dig deeper I would appreciate insights.

I'm using i686-apple-darwin10-gcc-4.2.1 on OSX 10.6.8

---------------------

gcc -c -I. -I/usr/include -I/Users/sjs/wine/wine-1.5.4/include
-I/Users/sjs/wine/wine-1.5.4/include/wine
-I/Users/sjs/wine/wine-1.5.4/include/wine/windows    -m32 -g -O2
-D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing
-Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o asio.o
asio.c
{standard input}:36:Unknown pseudo-op: .type
{standard input}:36:Rest of line ignored. 1st junk character valued 95 (_).
{standard input}:38:Unknown pseudo-op: .cfi_startproc
{standard input}:43:Unknown pseudo-op: .cfi_endproc
{standard input}:44:Unknown pseudo-op: .previous
{standard input}:48:Unknown pseudo-op: .type
{standard input}:48:Rest of line ignored. 1st junk character valued 95 (_).
{standard input}:50:Unknown&lt;/pre&gt;</description>
    <dc:creator>SteveSchow</dc:creator>
    <dc:date>2012-05-15T18:15:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41517">
    <title>Re: How do I disable warnings across versions?</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41517</link>
    <description>&lt;pre&gt;

Unfortunately there is nothing GCC can do to fix that problem.  If we
introduce __GNUC_THIS_IS_THE_REAL_GCC__ then other compilers will define
that as well.


Historical.

Ian

&lt;/pre&gt;</description>
    <dc:creator>Ian Lance Taylor</dc:creator>
    <dc:date>2012-05-15T15:06:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41516">
    <title>Re: GCC 4.6.2 C++ thread cancellation issue</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41516</link>
    <description>&lt;pre&gt;

I agree that this is a real bug.  On the other hand I've always
considered asynchronous thread cancellation to be a rather shaky
proposition.  Apparently Solaris has managed to do a good implementation
of it, but it's never going to be portable.

The root issue here is that glibc implements thread cancellation as an
exception, using the language independent exception mechanisms.  Those
mechanisms are designed to let one language catch an exception thrown by
another language, which is not what you want to have happen here.  In
fact this exception should not be caught at all.

Glibc does this because it lets it rely on the existing exception
mechanisms to efficiently implement pthread_cleanup_push.  It also lets
pthread_cancel run C++ destructors; I don't know if that is a good idea
or not.  Does that happen on Solaris?  I don't know if this is covered
by any OS or language standards.  C++ did not discuss threads at all
before C++11, and as far as I know C++11 has no asynchronous thread
cancellation facility&lt;/pre&gt;</description>
    <dc:creator>Ian Lance Taylor</dc:creator>
    <dc:date>2012-05-15T15:00:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41515">
    <title>Re: How do I disable warnings across versions?</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41515</link>
    <description>&lt;pre&gt;
Hmm, yes, these macros are actually used by MPFR. Note that these
macros are also by Intel's compiler ICC, which tries to emulate
some GCC features, but doesn't behave exactly like GCC. :( This
is a problem for portable code.

For those interested, we currently have the following:

#define MPFR_VERSION_NUM(a,b,c) (((a) &amp;lt;&amp;lt; 16L) | ((b) &amp;lt;&amp;lt; 8) | (c))

#if defined(_WIN32)
/* Under MS Windows (e.g. with VS2008 or VS2010), Intel's compiler doesn't
   support/enable extensions like the ones seen under GNU/Linux.
   https://sympa.inria.fr/sympa/arc/mpfr/2011-02/msg00032.html */
# define __MPFR_ICC(a,b,c) 0
#elif defined(__ICC)
# define __MPFR_ICC(a,b,c) (__ICC &amp;gt;= (a)*100+(b)*10+(c))
#elif defined(__INTEL_COMPILER)
# define __MPFR_ICC(a,b,c) (__INTEL_COMPILER &amp;gt;= (a)*100+(b)*10+(c))
#else
# define __MPFR_ICC(a,b,c) 0
#endif

#if defined(__GNUC__) &amp;amp;&amp;amp; defined(__GNUC_MINOR__) &amp;amp;&amp;amp; ! __MPFR_ICC(0,0,0)
# define __MPFR_GNUC(a,i) \
 (MPFR_VERSION_NUM(__GNUC__,__GNUC_MINOR__,0) &amp;gt;= MPFR_VERSION_NUM(a,i,0))
#else
# define __MPFR_&lt;/pre&gt;</description>
    <dc:creator>Vincent Lefevre</dc:creator>
    <dc:date>2012-05-15T14:17:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41514">
    <title>RE: GCC 4.6.2 C++ thread cancellation issue</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41514</link>
    <description>&lt;pre&gt;Ian,

Thanks very much for taking the time to explain the situation, however dissapointing it might be :)

But here's the thing.  With Solaris C++, thread cancellation just worked - when a thread is cancelled, the stack is unwound, destructors run, and there is no visibility outside the runtime of the mechanism used to accomplish that.  I guess I don't see why the g++ runtime could not do the same thing, and rather than exposing the "foreign" thread cancellation exception abi::__forced_unwind to the outside world, thereby requiring special handling for it to even have a chance of  working properly, instead keep it hidden and treat it as a one-of-a-kind, special "foreign" exception that just causes stack unwinding/destructor execution.  

Of course, I realize this is likely the topic of much debate, and gcc's implemention is probably an attempt to be compliant with the evolving c++ standard.  But clearly, g++'s approach is highly flawed, so perhaps the standard needs to be driven in a way such that g++ can ul&lt;/pre&gt;</description>
    <dc:creator>Mike Dalpee</dc:creator>
    <dc:date>2012-05-15T13:48:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41513">
    <title>Re: How do I disable warnings across versions?</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41513</link>
    <description>&lt;pre&gt;
#if __GNUC__ &amp;gt; 4 || (__GNUC__ == 4 &amp;amp;&amp;amp; __GNUC_MINOR__ &amp;gt;= 7)

(there is also __GNUC_PATCHLEVEL__ for the third component).


That's probably why it was added then, in prehistoric times already :-)


Segher


&lt;/pre&gt;</description>
    <dc:creator>Segher Boessenkool</dc:creator>
    <dc:date>2012-05-15T13:05:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41512">
    <title>Re: How do I disable warnings across versions?</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41512</link>
    <description>&lt;pre&gt;
I suppose that this is intentional, as
http://gcc.gnu.org/gcc-4.4/changes.html says:

  Unknown -Wno-* options are now silently ignored by GCC if no other
  diagnostics are issued. If other diagnostics are issued, then GCC
  warns about the unknown options.


They don't exist.

$ gcc-4.7 -dM -E -xc /dev/null | grep GCC
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
#define __GCC_HAVE_DWARF2_CFI_ASM 1
#define __GCC_ATOMIC_INT_LOCK_FREE 2
#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
#define __GCC_ATOMIC_LONG_LOCK_FREE 2
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
#define __GCC_ATOMIC_SHORT_LOCK_FREE 2

GMP and MPFR have such macros. It would be a &lt;/pre&gt;</description>
    <dc:creator>Vincent Lefevre</dc:creator>
    <dc:date>2012-05-15T12:50:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41511">
    <title>Re: How do I disable warnings across versions?</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41511</link>
    <description>&lt;pre&gt;
And I think that in the same way we ignore -Wno-foo if no warnings are
given, we should ignore:


Please open a PR.

Note that you can test for the exact version of GCC with #ifdef
GCC_MAJOR &amp;gt;= 4 &amp;amp;&amp;amp; GCC_MINOR &amp;gt;= 7.

Cheers,

Manuel.

&lt;/pre&gt;</description>
    <dc:creator>Manuel López-Ibáñez</dc:creator>
    <dc:date>2012-05-15T10:29:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.help/41510">
    <title>Re: How do I disable warnings across versions?</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.help/41510</link>
    <description>&lt;pre&gt;
I think that

#pragma GCC diagnostic ignored "-Wpragmas"

is exactly what you want. For instance,

#pragma GCC diagnostic ignored "-Wpragmas"
#pragma GCC diagnostic ignored "-Wuninitialized"
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#pragma GCC diagnostic ignored "-Wfoo"
#pragma GCC diagnostic warning "-Wpragmas"
#pragma GCC diagnostic ignored "-Wbar"

will just give a warning concerning -Wbar.

&lt;/pre&gt;</description>
    <dc:creator>Vincent Lefevre</dc:creator>
    <dc:date>2012-05-15T10:22:22</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.gcc.help">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.gcc.help</link>
  </textinput>
</rdf:RDF>

