rjmccall added inline comments.

================
Comment at: include/clang/Basic/DiagnosticCommonKinds.td:172
+def err_fixed_point_only_allowed_in_c : Error<
+  "Fixed point types are only allowed in C">;
 
----------------
leonardchan wrote:
> leonardchan wrote:
> > leonardchan wrote:
> > > rsmith wrote:
> > > > Diagnostics should not be capitalized. Also, we generally allow 
> > > > conforming C extensions to be used in other languages unless there is a 
> > > > really good reason not to.
> > > We decided not to allow fixed point types in other languages because 
> > > there is no specification provided in N1169 for addressing some features 
> > > in other languages. Using C++ as an example, N1169 does not provide 
> > > recommended characters when name mangling so we do not allow this in C++.
> > Actually, scratch that. We will be enabling it since GCC does. Will update 
> > this and other relevant C++ related code appropriately.
> Actually, the main thing that was preventing us from allowing this in C++ was 
> no standardized characters for name mangling. GCC seems to use the same 
> characters as some integral types (`short _Accum` uses `s`, `_Accum` uses 
> `i`, ...) but this would mean that a function that takes a `short _Accum` as 
> a sole argument would also be mangled the same as a similarly named function 
> that takes a `short`.
> 
> Would copying GCC take priority over not having characters specific for these 
> types? This standard also proposes 24 different types, of which only 6 are 
> included in this patch.
That makes it sound like GCC ignores `_Accum` and just mangles the unmodified 
type, which is clearly a bug that should not be imitated.  You should raise 
this issue to the Itanium C++ ABI group and pick something unambiguous as a 
placeholder.


Repository:
  rC Clang

https://reviews.llvm.org/D46084



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to