On terça-feira, 15 de maio de 2012 12.03.30, Carl Schumann wrote: > An update ... > > This build error was on our production 32 bit systems. We are just > know in the process of transitioning to 64 bit systems. (We have a lot > of legacy and limited downtime opportunities to make big changes. We > are also a little short on staff.) > > I extracted this build issue into a simple test file, main.cpp, which is > attached. I then tried to reproduce the build error on on both > systems. These results are also attached. Bottom line the build issue > is present only on 32 bit system.
That was implied. On a 64-bit system, long would be long enough to hold that
number. The error does not make sense outside of 32-bit systems -- or Windows
(on Windows, longs are 32-bit regardless of the environment).
> I am guessing you all have transitioned to 64 bits for your build
> system, etc. What is your policy statement on 32 bit systems? Try
> not break them? They deserve to get broken? ??? For me I will
> probably just transition my work to 64 bits even if our legacy stays 32
> bits for a while longer.
We have not all transitioned. In fact, I'm almost sure that all the CI builds
are done on 32-bit. Even if they aren't, there are a lot of people testing 32-
bit builds and they are known to work.
The simple fact is that I can't reproduce your error with my GCC 4.6, Intel CC
12.1 or Clang 3.0. When I compile the following program:
struct Foo { long long x; } val = { 0x0123456789abcdef };
I don't get any errors with -Wall -Wextra. Not even any warnings.
So your problem must be one of:
1) too old GCC, which we don't support anymore
2) too new GCC -- very unlikely, given the error message
3) some other compiler flags -- can't be, given your paste in the OP
4) patched Qt source code
I cannot find a combination of flags that produces just that error. The closest
I get to it is to add "-pedantic -pedantic-errors" and not add -std=c++0x. I
also get the same with "-Wlong-long -Werror". In both cases, GCC prints:
<stdin>:1:1: error: integer constant is too large for ‘long’ type [-Wlong-
long]
<stdin>:1:14: error: ISO C++ 1998 does not support ‘long long’ [-Wlong-long]
But I cannot get your error alone. It's always matched by that second error
saying that C++98 does not support long long, which you didn't get.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
Intel Sweden AB - Registration Number: 556189-6027
Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
