[cfe-dev] MS 128-bit literals don't always have the correct type

Dmitri Gribenko gribozavr at gmail.com
Sun Sep 23 13:20:20 PDT 2012


On Sun, Sep 23, 2012 at 11:12 PM, Stephen Canon <scanon at apple.com> wrote:
> When I did the work to add support for literals wider than 64b, I simply took the existing implementation in Sema indicating that they were a MS extension at face value (I don't myself have an MS system available to test on).  Regardless of whether or not MS supports them, it would be quite nice if we can continue to support them (and improve on the current state) -- I have a few personal projects that depend on them, which is why I originally implemented this.

No objections to the feature itself -- it is definitely useful to have
128-bit literals if one has a 128-bit type.  What might be confusing
is the choice of the suffix, though -- it is more like i64 suffix
which is an MS extension than standard L, LL suffixes.

> Perhaps support shouldn't be toggled via -fms-extensions, if VC++ doesn't actually support them?

Yes, currently it is misleading and just bad to turn on
-fms-extensions if one wants 128-bit literals.  Since this is not an
MS extension, code using this feature does not need other MS
extensions.

> The issue with "short 128b literals" not having the correct type is something that I noticed a couple weeks ago and have been meaning to take a look at, as it is causing bugs for me.

Looking forward to it!

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/




More information about the cfe-dev mailing list