Index: src/Common/SemanticError.h
===================================================================
--- src/Common/SemanticError.h	(revision 8abca0660e7023ad48db341fe98ce11969bb2e8a)
+++ src/Common/SemanticError.h	(revision eeaa3e2b4b50ff73386830c663367b7ad89482e1)
@@ -49,15 +49,16 @@
 struct WarningData {
 	const char * const name;
+	const Severity default_severity;
 	const char * const message;
-	const Severity default_severity;
 };
 
 constexpr WarningData WarningFormats[] = {
-	{"self-assign"            , "self assignment of expression: %s"            , Severity::Warn},
-	{"reference-conversion"   , "rvalue to reference conversion of rvalue: %s" , Severity::Warn},
-	{"qualifiers-zero_t-one_t", "questionable use of type qualifier %s with %s", Severity::Warn},
-	{"aggregate-forward-decl" , "forward declaration of nested aggregate: %s"  , Severity::Warn},
-	{"superfluous-decl"       , "declaration does not allocate storage: %s"    , Severity::Warn},
-	{"gcc-attributes"         , "invalid attribute: %s"                        , Severity::Warn},
+	{"self-assign"            , Severity::Warn    , "self assignment of expression: %s"                          },
+	{"reference-conversion"   , Severity::Warn    , "rvalue to reference conversion of rvalue: %s"               },
+	{"qualifiers-zero_t-one_t", Severity::Warn    , "questionable use of type qualifier %s with %s"              },
+	{"aggregate-forward-decl" , Severity::Warn    , "forward declaration of nested aggregate: %s"                },
+	{"superfluous-decl"       , Severity::Warn    , "declaration does not allocate storage: %s"                  },
+	{"gcc-attributes"         , Severity::Warn    , "invalid attribute: %s"                                      },
+	{"c++-like-copy"          , Severity::Warn    , "Constructor from reference is not a valid copy constructor" },
 };
 
@@ -69,4 +70,5 @@
 	SuperfluousDecl,
 	GccAttributes,
+	CppCopy,
 	NUMBER_OF_WARNINGS, // This MUST be the last warning
 };
