[cfe-commits] [Patch] -Wignored-qualifiers should point to the first ignored qualifier

Douglas Gregor dgregor at apple.com
Wed Jun 1 13:20:50 PDT 2011


On Jun 1, 2011, at 6:30 AM, Hans Wennborg wrote:

> In code such as "char* volatile const j()", Clang warns that "volatile
> const" will be ignored, but the error currently points to the location
> of "const". The attached patch makes the error point to the location
> of the first ignored qualifier, and tries to simplify the code a bit.
> 
> I posted this to the wrong list before [1] and didn't receive any
> response. I would be grateful for any feedback.


This is looking really good. The only issue I see is when comparing source locations with <, e.g.,

+    if (!Loc.isValid() || ConstQualLoc < Loc)
+      Loc = ConstQualLoc;

The < operator on SourceLocation doesn't necessarily mean "before in the translation"; it's a somewhat arbitrary total ordering useful mainly for use in std::map or std::set.

Instead, I suggest using SourceManager::isBeforeInTranslationUnit().

	- Doug



More information about the cfe-commits mailing list