Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Common/SemanticError.h

    r6d2aa7ed r9dc31c10  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Aug 29 22:03:36 2017
    13 // Update Count     : 17
     12// Last Modified On : Wed Apr 18 16:28:16 2018
     13// Update Count     : 18
    1414//
    1515
     
    3636// Warnings
    3737
    38 enum class Severity {
    39         Suppress,
    40         Warn,
    41         Error,
    42         Critical
    43 };
    44 
    45 struct WarningData {
    46         const char * const name;
    47         const char * const message;
    48         mutable Severity severity;
    49 };
    50 
    51 constexpr const WarningData WarningFormats[] = {
    52         {"self-assign"         , "self assignment of expression: %s"           , Severity::Warn},
    53         {"reference-conversion", "rvalue to reference conversion of rvalue: %s", Severity::Warn},
     38constexpr const char * const WarningFormats[] = {
     39        "self assignment of expression: %s",
     40        "rvalue to reference conversion of rvalue: %s",
     41        "questionable use of type qualifier %s with %s",
    5442};
    5543
     
    5745        SelfAssignment,
    5846        RvalueToReferenceConversion,
     47        BadQualifiersZeroOne,
    5948        NUMBER_OF_WARNINGS, //This MUST be the last warning
    6049};
     
    6554);
    6655
    67 #define SemanticWarning(loc, id, ...) SemanticWarningImpl(loc, id, WarningFormats[(int)id].message, __VA_ARGS__)
     56// ## used here to allow empty __VA_ARGS__
     57#define SemanticWarning(loc, id, ...) SemanticWarningImpl(loc, id, WarningFormats[(int)id], ## __VA_ARGS__)
    6858
    6959void SemanticWarningImpl (CodeLocation loc, Warning warn, const char * const fmt, ...) __attribute__((format(printf, 3, 4)));
Note: See TracChangeset for help on using the changeset viewer.