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 Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development