diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1fb40e8..47e4f3f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-09-03  Vinay Kumar  <vinay.kumar@blackfigtech.com>
+
+	* doc/invoke.texi (-Wno-prio-ctor-dtor): Document new warning
+	-Wno-prio-ctor-dtor.
+
 2018-09-03  Martin Liska  <mliska@suse.cz>
 
 	PR driver/83193
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 4129f24..a3cc29d 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2018-09-03  Vinay Kumar  <vinay.kumar@blackfigtech.com>
+
+	* c-attribs.c (get_priority): Add a warning flag warn_prio_ctor_dtor
+	to generate constructor destructor priority warning.
+	* c.opt (-Wprio-ctor-dtor): New option.
+
 2018-09-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
 	* c-common.c (braced_list_to_string): Remove eval parameter.
diff --git a/gcc/c-family/c-attribs.c b/gcc/c-family/c-attribs.c
index 5454e09..4416b50 100644
--- a/gcc/c-family/c-attribs.c
+++ b/gcc/c-family/c-attribs.c
@@ -1350,12 +1350,12 @@ get_priority (tree args, bool is_destructor)
   if (pri <= MAX_RESERVED_INIT_PRIORITY)
     {
       if (is_destructor)
-	warning (0,
+	warning (OPT_Wprio_ctor_dtor,
 		 "destructor priorities from 0 to %d are reserved "
 		 "for the implementation",
 		 MAX_RESERVED_INIT_PRIORITY);
       else
-	warning (0,
+	warning (OPT_Wprio_ctor_dtor,
 		 "constructor priorities from 0 to %d are reserved "
 		 "for the implementation",
 		 MAX_RESERVED_INIT_PRIORITY);
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 31a2b97..4af9ab37 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -965,6 +965,10 @@ Wpragmas
 C ObjC C++ ObjC++ Var(warn_pragmas) Init(1) Warning
 Warn about misuses of pragmas.
 
+Wprio-ctor-dtor
+C ObjC C++ ObjC++ Var(warn_prio_ctor_dtor) Init(1) Warning
+Warn if constructor or destructors with priorities from 0 to 100 are used.
+
 Wproperty-assign-default
 ObjC ObjC++ Var(warn_property_assign_default) Init(1) Warning
 Warn if a property for an Objective-C object has no assign semantics specified.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f911ae0..3e03884 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -323,7 +323,8 @@ Objective-C and Objective-C++ Dialects}.
 -Wparentheses  -Wno-pedantic-ms-format @gol
 -Wplacement-new  -Wplacement-new=@var{n} @gol
 -Wpointer-arith  -Wpointer-compare  -Wno-pointer-to-int-cast @gol
--Wno-pragmas  -Wredundant-decls  -Wrestrict  -Wno-return-local-addr @gol
+-Wno-pragmas  -Wno-prio-ctor-dtor -Wredundant-decls @gol
+-Wrestrict  -Wno-return-local-addr @gol
 -Wreturn-type  -Wsequence-point  -Wshadow  -Wno-shadow-ivar @gol
 -Wshadow=global,  -Wshadow=local,  -Wshadow=compatible-local @gol
 -Wshift-overflow  -Wshift-overflow=@var{n} @gol
@@ -5308,6 +5309,16 @@ Do not warn about misuses of pragmas, such as incorrect parameters,
 invalid syntax, or conflicts between pragmas.  See also
 @option{-Wunknown-pragmas}.
 
+@item -Wno-prio-ctor-dtor
+@opindex Wno-prio-ctor-dtor
+@opindex Wprio-ctor-dtor
+Do not warn if a priority from 0 to 100 is used for constructor or destructor.
+The use of constructor and destructor attributes allow you to assign a
+priority to the constructor/destructor to control its order of execution
+before @code{main} is called or after it returns.  The priority values must be
+greater than 100 as the compiler reserves priority values between 0--100 for
+the implementation.
+
 @item -Wstrict-aliasing
 @opindex Wstrict-aliasing
 @opindex Wno-strict-aliasing
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 89dc377..3e1de00 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,6 @@
+2018-09-03  Vinay Kumar  <vinay.kumar@blackfigtech.com>
+
+	* c-c++-common/Wprio-ctor-dtor.c: New test.
 2018-09-03  Martin Liska  <mliska@suse.cz>
 
 	PR driver/83193
diff --git a/gcc/testsuite/c-c++-common/Wprio-ctor-dtor.c b/gcc/testsuite/c-c++-common/Wprio-ctor-dtor.c
new file mode 100644
index 0000000..5b08059
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/Wprio-ctor-dtor.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-Wno-prio-ctor-dtor" } */
+
+void construct1 () __attribute__ ((constructor (10)));
+void construct2 () __attribute__ ((constructor (100)));
+void construct2 () __attribute__ ((constructor (101)));
+void destruct1 () __attribute__ ((destructor (1)));
+void destruct2 () __attribute__ ((destructor (02)));
+void destruct2 () __attribute__ ((destructor (102)));
